領域驅動開發
領域是相關業務知識的集合。領域模型是業務知識在程序中的一種表達方式,被限定在界限上下文中。領域驅動設計利用確定的業務模型來指導業務與應用的設計和實現。主張開發人員與業務人員持續地溝通和模型的持續迭代式演化,以保證業務模型與代碼實現的一致性,從而實現有效管理業務複雜度,優化軟件設計的目的。在DDD的概念中,軟件設計包括戰略設計和戰術設計。戰略設計對業務進行高層次的抽象和歸類,關注模型的分離,產出是上下文圖和模型的的劃分。戰術設計對具體上下文的模型進行詳細設計,目標是明確聚合、實體、值對象這些對象是什麼以及相互關係,產出是UML圖。領域驅動設計遵循以下原則,以實現業務驅動模型設計:1.通用語言:業務人員和開發人員使用無歧義的統一語言來對話,確保業務人員參與到軟件建模中;2.聚焦核心域:最關鍵的業務邏輯作為核心域,聚焦核心域決定了軟件的定位和投資重心;3.協作共創:邀請領域專家和技術專家共同建模;4.持續建模:模型隨着業務變化而被及時更新。DDD建模工作坊中常採用事件風暴的形式捕獲行為需求,召集領域專家和技術專家,對業務行為進行一次發散,並最終收斂達到業務統一。