DDD之2領域概念

来源:https://www.cnblogs.com/snidget/archive/2020/05/30/12995676.html
-Advertisement-
Play Games

圖中是暗黑領域,非常牛逼的技能。 背景 DDD中出現的名詞: 領域,子領域,核心域,通用域,支撐域,限界上下文,聚合,聚合根,實體,值對象 都是關鍵概念,但是又比較晦澀,在開始DDD之前,搞清楚這些關鍵概念名詞非常的重要。 那它們作用體現在哪裡呢? 領域-子領域 領域是: 從事專門活動或者事業的範圍 ...


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軟體編程知識和程式員發展職業之路,歡迎關註,我整理了這些年編程學習的各種資源,關註公眾號‘李福春持續輸出’,發送'學習資料'分享給你!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 需求 將生產環境的流量拷貝到預上線環境或測試環境,這樣做有很多好處,比如: 可以驗證功能是否正常,以及服務的性能; 用真實有效的流量請求去驗證,又不用造數據,不影響線上正常訪問; 這跟灰度發佈還不太一樣,鏡像流量不會影響真實流量; 可以用來排查線上問題; 重構,假如服務做了重構,這也是一種測試 ...
  • 對於學習前端開發有前途嗎?行情怎麼樣,好就業嗎?這樣的問題相信都看了很多很多,每個人的回答都有些差別。但是唯一的一點肯定的,學習前端的前景是很不錯的。 接下來,小編來跟大家分享一下2020年Web前端的發展趨勢如何?熟悉web的小伙伴們都瞭解,自2018年是前端技術的發展相對穩定的一年,就前端主流技 ...
  • 1、打開方式 打開Chrome瀏覽器,按下F12或者右擊空白處然後點擊檢查 最左邊是顯示效果,中間是html代碼,右邊是html樣式。 2、樣式的修改 點擊中間代碼框,左上角的小箭頭,然後點擊css樣式,可以直接修改屬性的值。也可以點擊鍵盤上的上下箭頭,對屬性的值進行修改 需要註意的是,調試工具只是 ...
  • 咕泡三期 Java高級開發|java進階大型互聯網架構師專題 微雲鏈接:鏈接:https://share.weiyun.com/4Ruecunx 密碼:m4xy7s 百度網盤:鏈接: https://pan.baidu.com/s/1UBSJaWNobkTmZ7uTGVMRQg 密碼: 1bpw 如 ...
  • 餓漢式 // 餓漢式單例 public class Hungry { //構造器私有 private Hungry(){ } // 一上來就把這個類載入了 private final static Hungry HUNGRY = new Hungry(); public static Hungry ...
  • 本文講解,Python Tkinter 庫,的基本原理,白話講解,面向小白。 Tkinter 是什麼: Tkinter 是 Python 自帶的一個,標準庫,用於快速創造,簡單的 GUI 程式。 為什麼要瞭解 Tkinter: 首先,因為這個庫,是 Python 自帶的,所以非常方便,隨叫隨到的那種 ...
  • L2-4 部落 在一個社區里,每個人都有自己的小圈子,還可能同時屬於很多不同的朋友圈。我們認為朋友的朋友都算在一個部落里,於是要請你統計一下,在一個給定社區中,到底有多少個互不相交的部落?並且檢查任意兩個人是否屬於同一個部落。 輸入格式: 輸入在第一行給出一個正整數N(≤1e4),是已知小圈子的個數 ...
  • 二叉搜索樹 定義 二叉查找樹(英語:Binary Search Tree),也稱為二叉搜索樹、有序二叉樹(ordered binary tree)或排序二叉樹(sorted binary tree),是指一棵空樹或者具有下列性質的二叉樹: 若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...