DDD之2領域概念

image.png

圖中是暗黑領域,很是牛逼的技能。程序員

背景

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

那它們做用體如今哪裏呢?微服務

file

領域-子領域

領域是: 從事專門活動或者事業的範圍。 
領域的做用是:肯定範圍和邊界學習

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

file

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

領域就是範圍,範圍有大小之分,因此,DDD中大範圍的叫領域,小範圍的叫子領域;對象

file

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

那麼問題來了? 資源

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

file

能夠看看植物的完整生物知識學體系創建過程。

image.png

file

小結:

1,領域能夠逐級細分爲子領域,每一個子領域都有一個知識體系(DDD的領域模型),
2,當全部的子領域的知識體系都創建完畢,就完成了對領域的知識體系創建,即創建了全域的領域模型。

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

保險行業

file

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

核心域-通用域-支撐域

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

file

爲何要對子領域再進行核心域,通用域,支撐域的劃分?目的是什麼?

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

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

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

小結

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

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

file

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

原創不易,關注誠難得,轉發價更高!轉載請註明出處,讓咱們互通有無,共同進步,歡迎溝通交流。
我會持續分享Java軟件編程知識和程序員發展職業之路,歡迎關注,我整理了這些年編程學習的各類資源,關注公衆號‘李福春持續輸出’,發送'學習資料'分享給你!
李福春持續輸出公衆號二維碼
相關文章
相關標籤/搜索