<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Maven 架構(gòu)選型,單模塊還是多模塊?

          共 1294字,需瀏覽 3分鐘

           ·

          2021-10-01 13:33

          點擊關(guān)注公眾號,Java干貨及時送達(dá)

          點擊上方 Java技術(shù)迷,選擇 設(shè)為星標(biāo)

          1. 單模塊

          優(yōu)勢

          快速上手,前期開發(fā)效率高。

          劣勢

          要想實現(xiàn)傳統(tǒng)的三層架構(gòu)(web/service/dao),多采用分包,分包帶來個問題就是,包之間邊界約束不夠。

          正常來說,三層架構(gòu)之間是有依賴關(guān)系的,dao --> service --> web,依賴是單向的。

          舉個例子:前端請求的xxxRequest應(yīng)該放哪呢,放web還是service,放web的話,service應(yīng)該是不能訪問的,所以怎么約束呢?

          再極端一點,dao不能調(diào)用service吧,但項目中最不缺的就是臨時方案,所以怎么約束呢?

          2. 多模塊(重點來了)

          優(yōu)勢

          約束能力,模塊間引用關(guān)系是明確的,項目架構(gòu)更清晰。

          劣勢

          簡單說,從頭搭著可能慢點,用上模板都差不多。

          首推阿里COLA:https://github.com/alibaba/COLA

          本人結(jié)合 阿里COLA4.0 實現(xiàn)了一個,模塊結(jié)構(gòu)如下

          think-cola

          • start(啟動項目)
          • think-client(api、dto)
          • think-controller(controller,調(diào)用app)
          • think-app(校驗、封裝、執(zhí)行,調(diào)用domain、infrastructure)
          • think-domain(DDD 領(lǐng)域模型,也可暴露接口,由infrastructure實現(xiàn))
          • think-infrastructure(db、rpc、search、防腐)

          項目地址:https://github.com/AmosWang0626/think-cola

          3. 怎么選?

          作為應(yīng)用級架構(gòu),小項目,2~3個人開發(fā)的,單模塊可能就足夠,前提是每個人都對架構(gòu)有認(rèn)識,個人約束力很重要;

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

          引用《代碼精進(jìn)之路:從碼農(nóng)到工匠》中的兩段話結(jié)尾:

          要記住,留給公司一個方便維護(hù)、整潔優(yōu)雅的代碼庫,是我們技術(shù)人員最高技術(shù)使命,也是我們對公司做出的最大技術(shù)貢獻(xiàn);

          【防止破窗】首先我們要有一套規(guī)范,并盡量遵守規(guī)范,不要做“打破第一扇窗”的人;其次,發(fā)現(xiàn)“破窗”要及時修復(fù),不要讓問題進(jìn)一步惡化。

          (感謝閱讀,希望對你所有幫助)
          來源:https://my.oschina.net/AmosWang/blog/4951326
           

          1、靈魂一問:你的登錄接口真的安全嗎?
          2、HashMap 中這些設(shè)計,絕了~
          3、在 IntelliJ IDEA 中這樣使用 Git,賊方便了!
          4、計算機時間到底是怎么來的?程序員必看的時間知識!
          5、這些IDEA的優(yōu)化設(shè)置趕緊安排起來,效率提升杠杠的!
          6、21 款 yyds 的 IDEA插件
          7、真香!用 IDEA 神器看源碼,效率真高!

          點分享

          點收藏

          點點贊

          點在看

          瀏覽 56
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲成人网在线 | 亚洲无免费码在线 | 日韩无码一卡二卡 | 91青青草在线观看 | 综合插插插 |