DDD之2領域概念


image.png

圖中是暗黑領域,非常牛逼的技能。

背景

DDD中出現的名詞: 領域,子領域,核心域,通用域,支撐域,限界上下文,聚合,聚合根,實體,值對象 都是關鍵概念,但是又比較晦澀,在開始DDD之前,搞清楚這些關鍵概念名詞非常的重要。

那它們作用體現在哪里呢?

file

領域-子領域

領域是: 從事專門活動或者事業的范圍。 
領域的作用是:確定范圍和邊界

DDD研究和解決業務問題過程如下:

file

DDD中的領域是:邊界中要解決的業務問題域

領域就是范圍,范圍有大小之分,所以,DDD中大范圍的叫領域,小范圍的叫子領域;

file

DDD是一種處理高度復雜領域的設計思想,試圖分離技術實現的復雜度。

那么問題來了?

面對錯綜復雜的業務領域,DDD是如何讓業務從復雜變得簡單,更容易理解? 如何讓技術實現更容易?
**
答:跟自然科學的研究方法類似。

file

可以看看植物的完整生物知識學體系建立過程。

image.png

file

小結:

1,領域可以逐級細分為子領域,每個子領域都有一個知識體系(DDD的領域模型),
2,當所有的子領域的知識體系都建立完畢,就完成了對領域的知識體系建立,即建立了全域的領域模型。

從業務領域來分析對比二者的細分過程是否一致。

保險行業

file

對比結果:不同行業業務模型不一樣,但是領域建模和微服務建設過程基本一樣,核心思想:把問題領域逐步細分為子領域,從而降低業務理解和系統實現的復雜度

核心域-通用域-支撐域

領域可以按照規則細分為子領域,子領域按照重要程度和功能特性有分為3類。即核心域,通用域,支撐域;

file

為什么要對子領域再進行核心域,通用域,支撐域的划分?目的是什么?

公司的IT系統建設過程中,資源和預算有限,在不同類型的子領域有不同的關注度和資源投入。

重要程度跟公司的戰略方向和商業模式有關系,不同的公司,關注點不一樣,即商業模式不同,核心領域的划分結果不同。

在公司領域細分、建立領域模型和系統建設時,我們就要結合公司戰略重點和商業模式,找到核心域了,且重點關注核心域。

小結

領域的核心思想是逐級細分子領域,來降低業務的理解復雜度和技術實現的復雜度。

核心域,通用域,支撐域的划分目的是:區分不同的子領域在公司的重要程度和功能屬性,從而提供不同的資源投入策略和關注度。

file

一句話來表達:
領域拆分為子領域就是做減法的過程,降低了業務的理解復雜度和系統實現的復雜度,而核心域,通用域,支撐域的划分是跟公司的商業模式有關系的,決定了子領域的不同優先級和資源投入策略。

原創不易,關注誠可貴,轉發價更高!轉載請注明出處,讓我們互通有無,共同進步,歡迎溝通交流。
我會持續分享Java軟件編程知識和程序員發展職業之路,歡迎關注,我整理了這些年編程學習的各種資源,關注公眾號‘李福春持續輸出’,發送'學習資料'分享給你!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM