重構(gòu)加深理解

突破

何為突破,DDD的實(shí)踐過程是漸進(jìn)式的。你的重構(gòu)與回報(bào)不是呈線性關(guān)系的。通常會(huì)在具體的某個(gè)點(diǎn)會(huì)出現(xiàn)一個(gè)飛躍。這個(gè)飛躍很有意義,同時(shí)也充滿了危險(xiǎn)。


隱式概念->顯式概念

何為隱式概念
就是需求中關(guān)注的部分,但是在你的結(jié)構(gòu)中沒有體現(xiàn)這一部分。這部分概念就被隱藏起來了。

如何發(fā)現(xiàn)隱式概念

  1. 與領(lǐng)域?qū)<姨接?/li>
  2. 思考領(lǐng)域的矛盾部分
  3. 查閱書籍驗(yàn)證模型
  4. 發(fā)現(xiàn)一些約束

什么需要被轉(zhuǎn)換成顯式

  1. 特定的領(lǐng)域概念
  2. 約束條件
  3. 領(lǐng)域關(guān)鍵過程

Tips
何時(shí)約束需要單獨(dú)提取成一個(gè)類

  1. 計(jì)算約束的數(shù)據(jù)從定義上并不屬于這個(gè)對(duì)象
  2. 相關(guān)規(guī)則在不同的類中重復(fù)出現(xiàn)
  3. 很多設(shè)計(jì)和需求談?wù)摱紘@這些約束,而這段代碼隱藏在過程代碼中

柔性設(shè)計(jì)

目的
方便重構(gòu),方便開發(fā)人員開發(fā)

方式

  1. 命名需要表意
  2. 方法無副作用(不需要一層一層的觀察它的行為)
  3. 可以使用斷言明確表示
  4. 低耦合
  5. 閉合操作(返回類型與參數(shù)類型相同)

設(shè)計(jì)模式在模型中的應(yīng)用

從代碼層面它是技術(shù)設(shè)計(jì)模式,從模型上看它是概念模型。

策略模式
通過策略模式分離不同的概念。側(cè)重點(diǎn)在表示概念的能力。

組合模式
使用組合模式可以根據(jù)業(yè)務(wù)組合不同的對(duì)象。


重構(gòu)加深理解

關(guān)注3個(gè)點(diǎn)

  • 以領(lǐng)域?yàn)楸?/li>
  • 用一種不同的方式看待事物
  • 始終堅(jiān)持與鄰域?qū)<覍?duì)話
    因?yàn)槟P团c領(lǐng)域不同才會(huì)開始領(lǐng)域的重構(gòu)。

何時(shí)重構(gòu)

  1. 設(shè)計(jì)沒有表達(dá)團(tuán)隊(duì)對(duì)領(lǐng)域的最新理解
  2. 重要的概念被隱藏在設(shè)計(jì)中
  3. 發(fā)現(xiàn)一個(gè)能令某個(gè)重要的設(shè)計(jì)部分變得更靈活的機(jī)會(huì)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容