<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)選型:單模塊還是多模塊?網(wǎng)友:多此一舉~

          共 1288字,需瀏覽 3分鐘

           ·

          2021-09-27 13:04

          程序員的成長之路
          互聯(lián)網(wǎng)/程序員/技術(shù)/資料共享 
          關(guān)注


          閱讀本文大概需要 2 分鐘。

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

          # 單模塊


          優(yōu)勢


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

          劣勢


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


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


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


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


          # 多模塊(重點(diǎn)來了)


          優(yōu)勢


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

          劣勢


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


          首推阿里COLA:https://github.com/alibaba/COLA,本人結(jié)合 阿里COLA4.0 實(shí)現(xiàn)了一個(gè),模塊結(jié)構(gòu)如下

          think-cola


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

          項(xiàng)目地址:https://github.com/AmosWang0626/think-cola



          # 怎么選?


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

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

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


          • 要記住,留給公司一個(gè)方便維護(hù)、整潔優(yōu)雅的代碼庫,是我們技術(shù)人員最高技術(shù)使命,也是我們對(duì)公司做出的最大技術(shù)貢獻(xiàn);
          • 【防止破窗】首先我們要有一套規(guī)范,并盡量遵守規(guī)范,不要做“打破第一扇窗”的人;其次,發(fā)現(xiàn)“破窗”要及時(shí)修復(fù),不要讓問題進(jìn)一步惡化。
          <END>

          推薦閱讀:

          騰訊 Code Review 規(guī)范出爐!

          想測一下接口的并發(fā)數(shù)?手把手教你!

          最近面試BAT,整理一份面試資料《Java面試BATJ通關(guān)手冊》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。

          獲取方式:點(diǎn)個(gè)「在看」,點(diǎn)擊上方小卡片,進(jìn)入公眾號(hào)后回復(fù)「面試題」領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

          朕已閱 

          瀏覽 25
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  免费黄色视频日本 | 黄色电影在线观看网站 | 国产 亚洲 无码 激情前后夹击 | 中文有码一区二区三区 | 黑人大屌孟操日本女人 |