作者:AMOS0626来源:https://my.oschina.net/AmosWa...1.单模块优势快速上手,前期开发效率高。缺点如果要实现传统的三层架构(web/service/dao),往往会采用分包的方式。分包带来的问题是包与包之间的边界约束不够。通常情况下,三层架构之间存在dao-->service-->web的依赖关系,依赖是单向的。比如:前端请求的xxxRequest应该放在哪里,web还是service,如果放在web上,service应该是访问不到的,那怎么限制呢?更极端一点,dao不能调用service,但是项目中最不可或缺的东西就是临时解决方案,那怎么限制呢?2、多模块(重点来了)优点和限制,模块之间的引用关系清晰,项目结构更清晰。缺点很简单,从头开始构建可能会比较慢,但使用模板时几乎是一样的。阿里COLA最先推广:https://github.com/alibaba/COLA我结合阿里COLA4.0实现了一个。模块结构如下think-colastart(启动项目)think-client(api,dto)think-controller(controller,调用app)think-app(验证、封装、执行、调用域、基础设施)think-domain(DDDdomainmodel,也可以暴露接口,由infrastructure实现)think-infrastructure(db,rpc,search,anti-corrosion)项目地址:https://github.com/AmosWang06...3.如何选择?作为应用级架构,小项目,2~3人开发,单个模块可能就够了,前提是大家都对架构有了解,个人约束很重要;其他模块建议多模块,从长远来看,约束是第一生产力,架构直接影响重构的成本。引用《代码精进之路:从码农到工匠》两段的结尾:记住,给公司留下一个易维护、干净、优雅的代码库,是我们技术人员的最高技术使命,也是我们为公司做出的最大技术贡献;窗】首先,我们要有一套规范,并尽量遵守规范,不要做“打破第一扇窗”的人;其次,要及时修好“破窗”,以免事态恶化。近期热点文章推荐:1.1,000+Java面试题及答案(2021最新版)2.别在满屏的if/else中,试试策略模式,真的很好吃!!3.操!Java中xx≠null的新语法是什么?4、SpringBoot2.5发布,深色模式太炸了!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!
