限界上下文

2022-08-20 00:21:09 字數 1347 閱讀 4384

通用語言

通用語言定義上下文含義,限界上下文則定義領域邊界

1,包括 術語、應用場景

2, 包含名詞和動詞 名詞可以給領域物件命名,如商品、訂單等,對應實體物件;動詞則表示乙個動作或事件,如商品已下單、訂單已付款等,對應領域事件或者命令。

定義過程;通過事件風暴得到使用者故事,通過使用者故事分析會形成乙個個的領域物件,這些領域物件對應領域模型的業務物件,每乙個業務物件和領域物件都有通用的名詞術語,並且一一對映。微服務**模型**於領域模型,每個**模型的**物件跟領域物件一一對應。

在事件風暴過程中,通過團隊交流達成共識的,能夠簡單、清晰、準確描述業務涵義和規則的語言就是通用語言。

ddd 分析和設計過程中的每乙個環節都需要保證限界上下文內術語的統一,在**模型設計的時侯就要建立領域物件和**物件的一一對映,從而保證業務模型和**模型的一致,實現業務語言與**語言的統一。

限界和上下文。

限界就是領域的邊界,而上下文則是語義環境。通過領域的限界上下文,可以在統一的領域邊界內用統一的語言進行交流。

限界上下文的定義就是:用來封裝通用語言和領域物件,提供上下文環境,保證在領域之內的一些術語、業務相關物件等(通用語言)有乙個確切的含義,沒有二義性。這個邊界定義了模型的適用範圍,使團隊所有成員能夠明確地知道什麼應該在模型中實現,什麼不應該在模型中實現。

舉例: 保險業務領域有投保單、保單、批單、賠案等保險術語,它們分別應用於保險的不同業務流程。

首先,領域可以拆分為多個子領域。乙個領域相當於乙個問題域,領域拆分為子域的過程就是大問題拆分為小問題的過程。保險領域被拆分為:投保、支付、保單管理和理賠四個子域。子域還可根據需要進一步拆分為子子域,比如,支付子域可繼續拆分為收款和付款子子域。拆到一定程度後,有些子子域的領域邊界就可能變成限界上下文的邊界了。子域可能會包含多個限界上下文,如理賠子域就包括報案、查勘和定損等多個限界上下文(限界上下文與理賠的子子域領域邊界重合)。也有可能子域本身的邊界就是限界上下文邊界,如投保子域。

每個領域模型都有它對應的限界上下文,團隊在限界上下文內用通用語言交流。領域內所有限界上下文的領域模型構成整個領域的領域模型。

理論上限界上下文就是微服務的邊界。我們將限界上下文內的領域模型對映到微服務,就完成了從問題域到軟體的解決方案。

可以說,限界上下文是微服務設計和拆分的主要依據。在領域模型中,如果不考慮技術異構、團隊溝通等其它外部因素,乙個限界上下文理論上就可以設計為乙個微服務。 

上下文 上下文棧

全域性 函式 區域性 在執行全域性 前將window確定為全域性執行上下文 對全域性資料進行預處理 var定義的全域性變數 undefined,新增為window的屬性 function宣告的全域性函式 賦值 fun 新增為window的方法 this 賦值 window 開始執行全域性 在呼叫函式...

中斷上下文 程序上下文

在學習與作業系統相關的知識時候,我們經常遇到程序上下文 中斷上下文,看似熟悉又感覺不是特別清晰。這裡我們從如下幾個方面進行描述。上下文是從英文中context翻譯過來的,指的是一種環境。上下文我們看起來不怎麼熟悉,但是我們可以看context的中文翻譯,或者我們能更加的情形些。context n 語...

全域性上下文與上下文

全域性上下文由main函式載入系統的主架構和主事件迴圈和全域性資料構成。是上帝創造世界時,建立的基礎事物。萬物之始,大道至簡,衍化至繁。全域性上下文代表著程式執行所需要的基礎資源。是程式執行的基礎。全域性上下文的特徵是在程式執行期間常駐記憶體。全域性上下文的生命週期和應用程式的生命週期相同。與應用程...