Maven 架構選型,單模塊還是多模塊?


作者:AMOS0626

來源:https://my.oschina.net/AmosWang/blog/4951326

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/AmosWang0626/think-cola

3. 怎么選?

作為應用級架構,小項目,2~3個人開發的,單模塊可能就足夠,前提是每個人都對架構有認識,個人約束力很重要;

其他均建議多模塊,長期來看,約束是第一生產力,架構直接影響重構的成本。

引用《代碼精進之路:從碼農到工匠》中的兩段話結尾:

  • 要記住,留給公司一個方便維護、整潔優雅的代碼庫,是我們技術人員最高技術使命,也是我們對公司做出的最大技術貢獻;
  • 【防止破窗】首先我們要有一套規范,並盡量遵守規范,不要做“打破第一扇窗”的人;其次,發現“破窗”要及時修復,不要讓問題進一步惡化。

近期熱文推薦:

1.1,000+ 道 Java面試題及答案整理(2021最新版)

2.別在再滿屏的 if/ else 了,試試策略模式,真香!!

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

4.Spring Boot 2.5 重磅發布,黑暗模式太炸了!

5.《Java開發手冊(嵩山版)》最新發布,速速下載!

覺得不錯,別忘了隨手點贊+轉發哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM