圖中是暗黑領域,很是牛逼的技能。程序員
DDD中出現的名詞: 領域,子領域,核心域,通用域,支撐域,限界上下文,聚合,聚合根,實體,值對象 都是關鍵概念,可是又比較晦澀,在開始DDD以前,搞清楚這些關鍵概念名詞很是的重要。編程
那它們做用體如今哪裏呢?微服務
領域是: 從事專門活動或者事業的範圍。
領域的做用是:肯定範圍和邊界學習
DDD研究和解決業務問題過程以下:spa
DDD中的領域是:邊界中要解決的業務問題域設計
領域就是範圍,範圍有大小之分,因此,DDD中大範圍的叫領域,小範圍的叫子領域;對象
DDD是一種處理高度複雜領域的設計思想,試圖分離技術實現的複雜度。blog
那麼問題來了? 資源
面對錯綜複雜的業務領域,DDD是如何讓業務從複雜變得簡單,更容易理解? 如何讓技術實現更容易?
**
答:跟天然科學的研究方法相似。it
能夠看看植物的完整生物知識學體系創建過程。
小結:
1,領域能夠逐級細分爲子領域,每一個子領域都有一個知識體系(DDD的領域模型),
2,當全部的子領域的知識體系都創建完畢,就完成了對領域的知識體系創建,即創建了全域的領域模型。
從業務領域來分析對比兩者的細分過程是否一致。
保險行業
對比結果:不一樣行業業務模型不同,可是領域建模和微服務建設過程基本同樣,核心思想:把問題領域逐步細分爲子領域,從而下降業務理解和系統實現的複雜度。
領域能夠按照規則細分爲子領域,子領域按照重要程度和功能特性有分爲3類。即核心域,通用域,支撐域;
爲何要對子領域再進行核心域,通用域,支撐域的劃分?目的是什麼?
公司的IT系統建設過程當中,資源和預算有限,在不一樣類型的子領域有不一樣的關注度和資源投入。
重要程度跟公司的戰略方向和商業模式有關係,不一樣的公司,關注點不同,即商業模式不一樣,核心領域的劃分結果不一樣。
在公司領域細分、創建領域模型和系統建設時,咱們就要結合公司戰略重點和商業模式,找到核心域了,且重點關注核心域。
領域的核心思想是逐級細分子領域,來下降業務的理解複雜度和技術實現的複雜度。
核心域,通用域,支撐域的劃分目的是:區分不一樣的子領域在公司的重要程度和功能屬性,從而提供不一樣的資源投入策略和關注度。
一句話來表達:
領域拆分爲子領域就是作減法的過程,下降了業務的理解複雜度和系統實現的複雜度,而核心域,通用域,支撐域的劃分是跟公司的商業模式有關係的,決定了子領域的不一樣優先級和資源投入策略。
原創不易,關注誠難得,轉發價更高!轉載請註明出處,讓咱們互通有無,共同進步,歡迎溝通交流。
我會持續分享Java軟件編程知識和程序員發展職業之路,歡迎關注,我整理了這些年編程學習的各類資源,關注公衆號‘李福春持續輸出’,發送'學習資料'分享給你!
![]()