整理一個精簡的DDD領域建模基本流程,供大家在DDD領域建模實踐中進行參考。
- 搜集用戶故事(用戶的原始需求)
- 整理用戶故事,抽出用例(用例表達了用戶對系統的需求,定義了系統的邊界以及系統外部角色和系統的交互場景)
- 分析系統需求,將領域拆分為多個子域(領域是問題空間,本質上就是大問題拆分為小問題)
- 抽取每個子域的領域概念,得到概念模型(概念模型存在於問題空間)
- 將子域的概念模型抽象並轉化為領域模型(領域模型存在於解決方案空間,這一步是難點,考驗抽象能力,如對關系的建模,如促銷系統中抽象出促銷產品,權限系統中抽象出授權)
- 找出領域模型中的聚合,以及每個聚合的聚合根
- 梳理聚合之間的關系
- 場景走查,檢查領域模型如何滿足用例需求
在以上過程中,還有兩點也是非常重要的:
- 逐步積累一個統一語言(UL)的領域術語表,方便各方人員溝通;
- 除了領域建模外,針對每個用例場景,嘗試畫一下系統順序圖也很有用,系統順序圖定義了系統外部角色和系統之間在某個場景下的具體交互流程;