什麼是DDD領域驅動設計的戰略設計?

banq發表於2019-05-03

它也稱為戰略建模,它是DDD的支柱,其主要目標是與整個專案團隊(領域專家和技術團隊)一起定義有界上下文,統一的無所不在語言和上下文對映。
要清楚地瞭解戰略專案是什麼,您需要掌握我所談到的每個概念。

有界上下文/界定上下文
有界上下文是DDD最重要的概念之一,我們可以說這是應用領域模型表達的概念上的限制。當您嘗試為大型領域建模時,您將遇到很大的困難,因為不同的人群將使用稍微不同的術語和句子來表達這些領域知識和概念,使用有界上下文,可以讓人們明白:在當前上下文之外使用相同的詞彙表卻可能意味著不同的東西。
我們可以說,有界上下文主要是語言劃界,正如[ Vaughn Vernon ]在他的書中所說的那樣。重要的是要理解每個有界上下文都有自己的無所不在語言。
隨著模型的發展,您將感覺需要在有界上下文之間建立關係,為此我們將使用上下文對映。

無所不在的語言
這種通用語言是一種內建模在有限背景(有界上下文)下,如該業務領域的術語和概念被識別,那就應該沒有任何含糊。為了使您能夠開發出高效的無所不在的語言,您需要了解業務。
無所不在的語言的一大優勢是將領域專家,技術團隊和參與專案的其他人聚集在一起。無所不在的語言絕不應該是領域專家強加的一系列術語和技術術語,相反,無所不在語言是在整個團隊的協議下發展起來的。這種無所不在的、通用的語言必須在團隊成員之間的任何時候都可以表達,以及可以用軟體模型來表示。

上下文對映​​​​​​​
上下文對映有助於理解整個專案,能夠顯示不同的有界上下文之間的關係。理解有界上下文之間的關係非常重要,這樣您就可以正確地構建域模型。
有幾種方法可以關聯有界上下文:

  1. 共享核心:兩個或多個團隊之間的共享上下文,可減少程式碼重複,但是,任何更改都必須在團隊之間進行組合和通知。
  2. 客戶/供應商:它是客戶端(下游)和伺服器(上游)之間的關係,團隊處於持續整合狀態。
  3. 循規蹈矩Conformist:這是涉及上游和下游團隊的情景,但在此模型中,上游團隊沒有動力滿足下游團隊的需求。
  4. 夥伴:這是團隊依賴並需要建立合作關係的場景,以便他們能夠滿足兩個系統的開發需求。
  5. 反腐敗層:在這種情況下,客戶端(下游)建立與上游上下文通訊的中間層,以滿足其自己的域模型。
  6. 還有其他整合模型,如開放主機服務Published Language,釋出語言,分離方式Separate Ways。


 

相關文章