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