如何在DDD項目實戰中保證子系統/限界上下文的低耦合,首先通過如下幾個層次和環節來保證。
1.業務需求分析階段
- 需求要理解透徹,哪些功能應該放在一起。
- 識別哪些是易變需求,哪些是穩定需求。
- 識別哪些是通用需求,哪些是定制需求。
- 靈活采用頭腦風暴或四色原型法等建立領域模型。
2.技術設計階段
- 遵守S.O.L.I.D組件設計準則。
- 遵守分包準則。例如重用-發布等價原則、共同重用原則、共同封閉原則、無環依賴原則和穩定抽象原則。
- 根據業務關注點和技術關注點,盡可能將具有一致概念的功能放在一個模塊。
- 各個子系統或模塊間通過穩定抽象接口進行交互。
- 引入必要的防腐層進行隔離。
3.詳細設計編碼階段
- 靈活使用設計模式進行編碼實現。例如訂閱者模式,職責鏈、策略模式、模版等
- 面向接口、面向抽象編程的理念
依賴抽象,禁止依賴具體。
4.代碼維護階段
- 嚴格的代碼審核,不滿足規范的代碼禁止進入。例如:代碼放在正確的模塊,DB模塊中不能有UI代碼等。
- 嚴格遵守代碼提交流程。
另外,還需要使用一些好的流程或工具,例如使用Visio工具描述領域模型及模塊功能關系,通過技術方案評審,確保系統設計低耦合和好的擴展性。
最后,在戰略設計上還需要注意如下幾個問題:
- 避免過度設計。設計時很容易放的錯誤,
- 設計時要有全局觀念。
- 設計上要考慮必要的擴展性。
- ?技術選擇上,還要考慮知識產權問題,優先使用自主知識產權的第三方庫。