1. 程式人生 > >領域驅動設計的必要性和模型標準——《領域驅動設計-精簡版》

領域驅動設計的必要性和模型標準——《領域驅動設計-精簡版》

叠代 思考 tro 開發人員 實例 動軟 需求 com 專家

一、領域驅動設計

領域驅動設計早在30年前就已經為人所知,一些設計人員開始開始領域建模,領域通用語言的思維構造,以便能夠在領域專家和開發專家形成高效的溝通,Eric Evans將這種思維(思潮)定義為Domain-Driven Desigin(領域驅動設計,簡稱DDD)。DDD在B/S還不這麽流行的年代,主要應用在軟件公司,因為很多都是C端,但是現在各個互聯網公司將很多業務嘗試模塊化、量級上規模化,業務上多樣化,不再是CRUD這麽簡單,因此,領域驅動設計在互聯網開發中也起到了一個很好的引領作用。這本書在InfoQ上有專家改寫出了一本精簡版,全文82頁,本文主要將個人閱讀筆記和思考做分享。可以通過網址直接訪問或下載閱讀(https://files.cnblogs.com/files/anderslly/dddquickly-chinese-version.pdf)

二、領域驅動設計必要性

軟件開發離不開具體的業務需求,開發人員會先從理解業務開始,此時需要請教領域專家,通過了解專家口中的領域術語,對應轉換成軟件開發人員能夠理解的計算機概念。但是,兩種不同的角色身份對於同一領域有不同的理解和表達,為了讓兩者更加高效和準確理解,同時也提高大型軟件系統的可用性,需要建立一個領域模型來向雙方反映領域知識,開發人員依據領域模型來開發軟件,用代碼來實現模型,從而達到了通用的設計流程。實現領域模型驅動軟件設計開發。

三、建立一個領域模型

領域模型是溝通領域專家和軟件專家的橋梁,也是唯一實現實例抽象成統一模型,而該模型可以被兩者認同。所以,在領域驅動設計時候,建立一個領域模型是非常重要的,它一般具有以下特點:

1、模型有邊界,只反映具體某個領域所關註的部分。

2、領域模型只反映業務,和具體編程語言、技術無關。

3、領域模型確保了軟件邏輯都在一個模型裏,也在同一個地方,盡量實現高內聚,低耦合。

4、領域模型能夠幫助開發人員將領域專業知識轉換為軟件設計知識,方便開發人員區別和學習。

5、領域模型不僅用在溝通階段,貫穿整個開發過程,。

6、領域模型在軟件開發階段,會對原有的模型完善和細化、深入,是一個多方共同維護的結果。

7、圖是表示領域模型最常見和最形象的方式,可以參見美團技術團隊-領域驅動設計在互聯網業務中的應用。

8、領域模型是整個軟件的核心,後續的業務變更和擴展也是基於原有的模型進行叠代,因此模型建立非常重要。

領域驅動設計的必要性和模型標準——《領域驅動設計-精簡版》