DDD 我的理解
都在談論DDD 我想說說我的看法,不知對否,望大家執教
所謂的 DDD無異於將所有的業務抽象到領域層,所有的都是物件,所有的物件對自己負責,具體實現時,我的思路是這樣的:
首先對業務領域建模,擯棄以往的以資料為中心的思想,首先不考慮哪些需要持久化,儘管根據業務流程進行建模,建模完成後,到了我們考慮哪些資料需要持久化了。從領域物件中找出需要持久化的資料模型,再次審視所有的業務物件的職責,或者通俗的說 ,方法,把握一個尺度,對於所有與持久化相關的操作,如果是簡單的CRUD則放到對應DAO中,涉及查詢等放到倉儲中查詢,使用工廠進行物件建立,如對於Lazy-load之類的問題則可以透過倉儲和工廠解決。大顆粒度操作抽象到對應服務中。最後就是再次在更高的層次審視整個模型,必要時使用Facade 模式,在系統最上方加一層,如果涉及團隊或老系統整合,在必要的Cotext中新增anti-coruption層……
望大家指教
所謂的 DDD無異於將所有的業務抽象到領域層,所有的都是物件,所有的物件對自己負責,具體實現時,我的思路是這樣的:
首先對業務領域建模,擯棄以往的以資料為中心的思想,首先不考慮哪些需要持久化,儘管根據業務流程進行建模,建模完成後,到了我們考慮哪些資料需要持久化了。從領域物件中找出需要持久化的資料模型,再次審視所有的業務物件的職責,或者通俗的說 ,方法,把握一個尺度,對於所有與持久化相關的操作,如果是簡單的CRUD則放到對應DAO中,涉及查詢等放到倉儲中查詢,使用工廠進行物件建立,如對於Lazy-load之類的問題則可以透過倉儲和工廠解決。大顆粒度操作抽象到對應服務中。最後就是再次在更高的層次審視整個模型,必要時使用Facade 模式,在系統最上方加一層,如果涉及團隊或老系統整合,在必要的Cotext中新增anti-coruption層……
望大家指教
相關文章
- 面試官:談一下你對DDD的理解?我:馬什麼梅?面試
- 透過重構來加深理解——DDD
- 我們團隊是如何落地DDD的(1)
- 為了落地DDD,我是這樣“PUA”大家的
- 我所理解的Arthas
- 我所理解的 CocoaPods
- 我對抽象的理解抽象
- 我所理解的前端前端
- 為什麼我越來越喜歡用DDD — DDD架構篇(1)架構
- 我理解的ES6
- 我理解的 Java 泛型Java泛型
- 我對JavaScript物件的理解JavaScript物件
- 我所理解的微服務微服務
- 我理解的前端視覺化前端視覺化
- Android:聊聊我所理解的MVPAndroidMVP
- 我所理解的介面設計
- 我理解的Clean程式碼 - macerubMac
- 說說我對 WSGI 的理解
- 我理解的分散式系統分散式
- 我理解的正規表示式
- 我理解的前端發展方向前端
- 我所理解的雲原生(二)
- 我是這樣理解EventLoop的OOP
- 我對註冊中心的理解
- 關於聚合根,領域事件的那點事---深入淺出理解DDD事件
- 我理解的foreach, for in, for of 之間的異同
- 我理解的 Cookie 讀/寫/刪除Cookie
- 我對部落格的理解和看法
- 我理解的javascript事件迴圈(一)JavaScript事件
- 我對作業系統的理解作業系統
- 我對Kosaraju演算法的理解演算法
- 談談我對Spring IOC的理解Spring
- [Vuex系列] - Actions的理解之我見Vue
- 我是如何理解並使用maven的Maven
- 轉載:我所理解的 PHP TraitPHPAI
- 我們的『閱讀理解』出了錯
- 我所理解的機器學習機器學習
- 我對EVE的一點點理解
- 領域驅動設計的DDD與ddd - nick