- 解構(gòu)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
- 張逸
- 640字
- 2022-03-01 17:53:12
第一篇 開(kāi)篇
開(kāi)篇,明義。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(domain-driven design,DDD)需要應(yīng)對(duì)軟件復(fù)雜度的挑戰(zhàn)!那么,軟件復(fù)雜度的成因究竟是什么,又該如何應(yīng)對(duì)?概括而言,即:
- 規(guī)模——通過(guò)分而治之控制規(guī)模;
- 結(jié)構(gòu)——通過(guò)邊界保證清晰有序;
- 變化——順應(yīng)變化方向。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)對(duì)軟件復(fù)雜度的應(yīng)對(duì)之道可進(jìn)一步闡述為:
- 規(guī)模——以子領(lǐng)域、限界上下文對(duì)問(wèn)題空間與解空間分而治之;
- 結(jié)構(gòu)——以分層架構(gòu)隔離業(yè)務(wù)復(fù)雜度與技術(shù)復(fù)雜度,形成清晰的架構(gòu);
- 變化——通過(guò)領(lǐng)域建模抽象為以聚合為核心的領(lǐng)域模型,響應(yīng)需求之變化。
子領(lǐng)域、限界上下文、分層架構(gòu)和聚合皆為領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的核心元模型,分屬戰(zhàn)略設(shè)計(jì)和戰(zhàn)術(shù)設(shè)計(jì),貫穿了從問(wèn)題空間到解空間的全過(guò)程。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的開(kāi)放性是其生命長(zhǎng)青的基石,但它過(guò)于靈活的特點(diǎn)也讓運(yùn)用它的開(kāi)發(fā)團(tuán)隊(duì)舉步維艱。我之所以提出領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)統(tǒng)一過(guò)程,正是要在開(kāi)放的方法體系指導(dǎo)之下,摸索出一條行之有效的軟件構(gòu)建之路,既不悖于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)之精神,又不吝于運(yùn)用設(shè)計(jì)元模型,通過(guò)提供簡(jiǎn)單有效的實(shí)踐方法,建立具有目的性和可操作性的構(gòu)建過(guò)程。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)統(tǒng)一過(guò)程分為3個(gè)階段:
- 全局分析階段;
- 架構(gòu)映射階段;
- 領(lǐng)域建模階段。
每個(gè)階段的過(guò)程工作流既融合了領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)既有的設(shè)計(jì)元模型,又提出了新的模式、方法和實(shí)踐,豐富了領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的外延。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)統(tǒng)一過(guò)程對(duì)項(xiàng)目管理、需求管理和團(tuán)隊(duì)管理也提出了明確的要求,因?yàn)樗鼈冸m然不屬于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)關(guān)注的范疇,卻是保證領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)實(shí)踐與成功落地的重要因素。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)統(tǒng)一過(guò)程是對(duì)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)進(jìn)行解構(gòu)的核心內(nèi)容!
- Core Data應(yīng)用開(kāi)發(fā)實(shí)踐指南
- QTP從實(shí)踐到精通
- DevOps原理與實(shí)踐
- Netty權(quán)威指南
- 知行合一: 實(shí)現(xiàn)價(jià)值驅(qū)動(dòng)的敏捷和精益開(kāi)發(fā)
- 用戶體驗(yàn)四維度
- Python與數(shù)據(jù)挖掘
- 移動(dòng)Web實(shí)現(xiàn)指南:面向移動(dòng)設(shè)備的網(wǎng)站優(yōu)化、開(kāi)發(fā)和設(shè)計(jì)
- 學(xué)校沒(méi)教的軟件工程課
- 解決方案架構(gòu)師修煉之道(原書第2版)
- 搜索引擎與程序化廣告:原理、設(shè)計(jì)與實(shí)戰(zhàn)
- 軟件秘笈:設(shè)計(jì)模式那點(diǎn)事
- CATIA V5 從入門到精通(第二版)
- 大規(guī)模組織DevOps實(shí)踐(第2版)
- 深入淺出數(shù)據(jù)結(jié)構(gòu)與算法(微課視頻版)