DDD领域驱动设计特点及难点
DDD的特點主要是定位于解決復雜性,
1、發現和理解問題
????? 介紹兩周發現問題并能就理解問題達成共識的方式:面對面協作建模和閱讀代碼逆向工程建模。
2、領域即邊界
????? 領域即邊界,邊界考分類,分類需要從內外部入手。
3、解決復雜性
?????? 兩種方法:拆解松耦合的組件+使用容易讓人明白的套路表達出來。
?????? 首先,DDD通過引入 領域或是子域 、有界上下文來劃分邊界,邊界一旦分好第一步就完成。
??????? 第二步:引入各種模式名詞 比如 聚合,實體,值對象,工廠、倉儲、領域事件、讓知曉這些模式的人能夠一下定位功能對應實現的組件。(套路)
4、新的數據結構設計方式
???? DDD設計結果主要是通過類(Class)來表達其模型,類不僅是一種數據結構,而且帶有主動操作數據結構行為,類=數據結構+行為。
??? 例圖:
5、需要注重產品的程序員(人的因素很重要)
??? 實際上是對程序員要求更高,需要知道的更多,參與的更多,需要與產品設計人員、業務分析師、或是客戶坐下來一起討論。
??? 例如Uber工程師Gergely 認為注重產品的程序員應該具有9個特征:
????????? 1、積極參與產品構想/意見
????????? 2、對業務、用戶行為和有關數據感興趣
????????? 3、具有好奇心和對為什么的濃厚興趣
????????? 4、較強的溝通能力,與非工程師保持好良好關系
????????? 5、預先提供產品/工程權衡,因為他們對產品“為什么”以及工程方面有深刻了解,所以他們可以提供很少有人可以提出的建議。
????????? 6、邊緣案例的務實處理。
????????? 7、注重快速的產品驗證。
????????? 8、當某個功能的性能比預期差時,會很好的了解問題的位置,并希望找到在產品計劃和世界結果之間出現差距的根本原因。會和產品經理和相關人員你討論假設和學習。
????????? 9、通過反復學習來增強對產品的直覺
?
難點和特點很像:1、確定業務策略和業務規則 ;2、統一語言與有界上下文 ;3、領域模型的提煉?
總結
以上是生活随笔為你收集整理的DDD领域驱动设计特点及难点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DDD领域驱动设计---战略设计(包括四
- 下一篇: com.xxl.rpc.util.Xxl