美文网首页
单应用框架搭建的思考

单应用框架搭建的思考

作者: java_飞 | 来源:发表于2019-05-03 15:30 被阅读0次

情景:新公司入职以后,查看原来的代码,发现代码结构混乱,而且其中夹杂着很多无用的代码,并且代码分层也不够清晰,导致熟悉起来比较困难,而且对于后续的功能迭代和新需求的添加都比较困难(无法忍受,可能对代码有洁癖,无用的代码就想去掉),想在原来的基础上改,但是对原有代码又不够熟悉,导致不敢轻举妄动,跟同事沟通了解了大概,项目基本是从github上clone下来的,所以感觉他也不是很清楚,但是大概功能很简单,就是基本的增删改差,并且没有用户什么的相关东西,由此打算自己重新搭建框架。

1.首先解决pom依赖问题

原有项目直接使用aliyun的镜像,没有自己的私服,我考虑到之后可能会有自己的jar所以先搭建nexus;
没动手就遇到了问题,公司比较传统之前用的一直都是windos server,而我对windos server不熟悉,当然windos server也可以搭建,但是相关文档而且将服务做成后台服务都比较困难,所以我放弃在windos server上搭建,直接在本机电脑上装了一个linux虚拟机,然后在里面安装了nexus;

2.将原来的mysql服务从windos server转移到linux虚拟机中

3.搭建源码存储服务gitblit,因为之前同事的项目代码是直接存放在github上,没有自己的源码托管服务,所以我这里要重新搭建,刚开始想搭建gitlab,但是感觉gitlab太大,功能虽然很全,但是我的虚拟机可能性能不够,所以找了gitblit代替;

4.开始初始化git项目,并且进行模块化设计,接下里说一下我的想法;

platform                     ----父级pom
       entity                ----数据实体
       common                ----共用代码,例如异常封装,枚举等
       dao                   ----简单数据库查询
       service               -----这里独立出来service,是为to于dto的转换,防止dto直接暴露到web
       web                   -----web对外层,controller等
       util                  -----工具类模块

对于独立service模块是否需要存在我思考了很久,而且也是从刚入行以来一直没有明白的;

不需要的原因:
第一点:service模块就是业务逻辑处理模块,那么独立出来好像并没有必要,因为每一个业务的处理肯定不一样;
第二点:如果独立出来了,那么这个模块的代码基本上不可能重用的,而且又多了一层;
第三点:如果这里独立出来了,那么web那边还是否需要有自己的service;

需要的原因:
第一点:能够封装to与dto的转换,防止dto直接暴露到web这边;
第二点:独立出来,可以体现自己的设计思想,实际使用上无法看出来,因为我尝试着在web模块里去掉entity的依赖,发现项目无法启动,所以只能在使用的时候注意,千万不要乱用;
第三点:这样独立出来有利于其他项目的共用,并且每层都分的很清楚,有利于理解;

当然最终是否需要这个独立service模块还是取决于自己,我个人倾向于分出来,有利于代码阅读者更加容易阅读,代码也更加清晰,其余模块的如此拆分,有利于之后迭代更快,新需求添加更简单,代码结构也很清晰,当然最后交接的时候也能少挖一些坑让后来人填;

单应用框架基本就是这样了,希望能帮到大家,看过觉得有用的可以点个喜欢收藏一下(QQ:1107156537)

相关文章

网友评论

      本文标题:单应用框架搭建的思考

      本文链接:https://www.haomeiwen.com/subject/osrynqtx.html