大话领域驱动设计——简介
如果說當下最熱門的技術概念或架構思想,那么領域驅動設計(DDD)一定占有一席之地。
上個系列,我講了ABP vNext框架在微服務架構下的落地思路,而ABP vNext是基于DDD思想的完整框架之一,同時DDD也是微服務架構服務拆分的主流依據。無論想學好ABP還是微服務架構,首先要理解DDD。這一系列,我就從各個概念,結合在ABP vNext中的用法詳細講解DDD。
DDD是Domain Driven Design的縮寫,中文翻譯為領域驅動設計。首先要明確一點,DDD是一套方法論,主要面向軟件設計的方法論。學習它首先要把它從具體的實現抽離出來,也要從微服務架構的概念里抽離出來,它們是相互獨立的概念。而ABP框架是DDD思想的基礎落地方案之一。所以是先學思想,再學落地。
DDD的核心是領域。領域又稱為問題域,是對系統業務的抽象,意在將我們的重點放在需要解決的問題本身,而不是如何實現。DDD希望為業務專家(領域專家)和研發人員(技術專家)提供一套完整高效的溝通方式,并在此基礎上由他們共同建立可快速落地的系統模型(領域模型)。在此工程中,業務專家不需要去關注技術實現,技術人員應該優先把精力放在理解業務本身而不是實現的細節。
DDD的核心產出結果是領域模型,在過去無論是傳統軟件工程方法或是基于UML的面向對象建模,軟件設計過程都會產出多個不同維度的設計圖,例如類圖、順序圖、流程圖……。但是這樣存在一個問題,因為需求不斷變更,每次變化我們都要花大量時間修改多個設計圖。尤其對于進度比較急項目,經常會出現代碼不斷修改但是設計圖沒有足夠的時間去維護。慢慢會導致設計圖和實際代碼不一致甚至區別很大,那么設計圖將失去意義。而在DDD的思想中,所有的領域設計,都會繪制在一個圖也就是領域模型圖中,相當于將過去的多個圖合成一個。那么我們改代碼的同時,就很容易同步去修正領域模型。
后面的章節,我將從以下幾個方面來深入介紹領域驅動設計:
? ?1. 戰略設計和戰術設計
? ?2. 分層架構
? ?3. 各項概念(實體、聚合、服務、DTO等)
? ?4. 實現方法
END
關注我獲得
更多精彩
總結
以上是生活随笔為你收集整理的大话领域驱动设计——简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FluentValidation在C#中
- 下一篇: Avalonia跨平台入门第十九篇之语音