关于java:Maven-架构选型单模块还是多模块

47次阅读

共计 1063 个字符,预计需要花费 3 分钟才能阅读完成。

作者: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-cola

  • start(启动我的项目)
  • think-client(api、dto)
  • think-controller(controller,调用 app)
  • think-app(校验、封装、执行,调用 domain、infrastructure)
  • think-domain(DDD 畛域模型,也可裸露接口,由 infrastructure 实现)
  • think-infrastructure(db、rpc、search、防腐)

我的项目地址:https://github.com/AmosWang06…

3. 怎么选?

作为利用级架构,小我的项目,2~3 集体开发的,单模块可能就足够,前提是每个人都对架构有意识,集体约束力很重要;

其余均倡议多模块,长期来看,束缚是第一生产力,架构间接影响重构的老本。

援用《代码精进之路:从码农到工匠》中的两段话结尾:

  • 要记住,留给公司一个不便保护、整洁优雅的代码库,是咱们技术人员最高技术使命,也是咱们对公司做出的最大技术奉献;
  • 【避免破窗】首先咱们要有一套标准,并尽量恪守标准,不要做“突破第一扇窗”的人;其次,发现“破窗”要及时修复,不要让问题进一步好转。

近期热文举荐:

1.1,000+ 道 Java 面试题及答案整顿 (2021 最新版)

2. 别在再满屏的 if/ else 了,试试策略模式,真香!!

3. 卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.5 重磅公布,光明模式太炸了!

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

正文完
 0