統一術語(戰略設計) 我們將通過DDD完成業務與技術的完整落地 統一 領域模型術語 DDD模式名稱 技術 技術設計術語 技術術語 技術設計模式 業務 領域模型術語 DDD模式名稱 業務術語 設計無關的業務術語 清晰的事件流 DDD 領域驅動設計是一個有關軟體開發的方法論,它提出基於領域開發的開發模式 ...
統一術語(戰略設計)
我們將通過DDD完成業務與技術的完整落地
統一
領域模型術語
DDD模式名稱
技術
技術設計術語
技術術語
技術設計模式
業務
領域模型術語
DDD模式名稱
業務術語
設計無關的業務術語
清晰的事件流
DDD
領域驅動設計是一個有關軟體開發的方法論,它提出基於領域開發的開發模式,基於DDD理論,我們可以設計出高質量的軟體模型。它圍繞業務概念構建領域模型來控制業務的複雜度,解決軟體難以理解和演化的問題。
戰略設計(業務)
領域、子域、限界上下文將領域拆分成子域,並劃分核心子域、支撐子域和通用子域
以子域展開事件風暴,根據上下文語義劃分限界上下文,建立通用語言,完成
領域建模領域建模將作為能力中心規劃的重要依據
完成能力中心地圖和優先順序後,作為微服務設計的輸入完成戰術設計
戰術設計(技術)
聚合、聚合根、實體、值對象、領域服務等
按照領域模型完成微服務設計和落地
建立聚合、聚合根、實體、值對象、領域服務等對象之間的依賴關係,以代碼對象的形式映射到服務中,採用分層架構完成微服務設計和落地
事件風暴
一種靈活的研討會形式,用於協作探索複雜的業務領域
活動準備
人:業務人員,領域專家,技術人員,架構師,測試等
看板:可以將事件流可視化的白板或者畫圖工具等
彩色貼紙:填寫事件,命令等
業務場景:規定業務場景,以一個電商項目為例
事件風暴流程精簡版
領域對象設計
領域對象關係
分解聚合,提取該聚合包含的領域對象
領域對象的業務不變性
領域對象具有一致的生命周期
例:訂單聚合包含訂單實體,訂單行實體訂單實體包含收貨地址值對象
定義實體與值對象
實體:存在唯一性標識,實體間是否相等的判斷依據也是唯一標識
值對象:表示屬性的不變值
C4模型
用於可視化軟體架構:反映軟體架構師和開發人員如何思考和構建軟體的抽象
Context:各軟體系統如何交互,不關註細節
Containers:可以看到軟體系統內部結構,如U,服務,DB等如何協作,通信等
Components:展示容器內的組件關係和組件的職責
Code:展示組件如何實現,如UML類圖、實體關係圖等,非特別複雜組件不建議關註
架構設計
我們簡單的把架構設計看作是三個層面:
業務架構
根據業務需求設計業務模塊及其關係:DDD的領域建模其實就已經協助我們做了業務架構和系統架構
系統架構
設計系統與子系統的模塊及其關係:在DDD中業務架構是可以直接映射到系統架構上的業務變化會演變為系統架構變化,影響到技術架構變化
技術架構
根據業務需求設計業務模塊及其關係:技術架構(微服務)則解決子系統之間的解耦,去中心化的服務治理和數據治理
前後分離
掃碼進群,瞭解更多
MASA Framework歡迎你的加入