DDD(Domain Driven Design)作為一種軟體開發方法,它可以幫助我們設計高質量的軟體模型。在正確實現的情況下,我們通過 DDD 完成的設計恰恰就是軟體的工作方式。

微服務近年來可謂炙手可熱,合理的使用微服務架構可以解耦系統,提供更好的軟體伸縮性以及提高組織的敏捷性,然而微服務架構從一出來就沒有很好的理論支撐如何合理的劃分服務邊界,人們常常為服務要劃分多大而爭吵不休。而 DDD 被發現恰好可以彌補微服務的營養不良:通過戰略設計可以確定子域並在子域內劃分 BC(Bounded Context),一個微服務一般對應一個 BC,同時 BC 內成熟的分層架構和戰術設計可以應用在微服務上。

很多團隊在微服務內實踐 DDD 時,經常會為如何分包而糾結來糾結去,折騰了很長時間也很難滿意,同時不同團隊,甚至同一團隊的不同開發人員的分包原則和方式也大不相同,非常不利於產品程式碼的開發和維護。我們說的物理設計,主要就是目錄和檔案設計,可以很好的解決分包問題。

本場 Chat 首先回顧了DDD的基本知識,並將微服務與DDD關聯在一起,然後介紹了DDD四層架構模式,為闡述微服務的物理設計打好了必要的基礎,接著詳細闡述了DDD在微服務物理設計中的應用,並輸出了微服務物理設計的推薦方案,以及物理設計經過DCI(Data,Context and Interactive)架構模式、Domain Event建模元素和DIP(Dependency Inversion Principle, DIP)原則驅動後的演進方案,最後列出了作者精心準備的放在github上的多個程式碼案例,從而有效降低落地難度。希望讀者吃透本場 Chat 的知識點,舉一反三,靈活應用DDD做好微服務的物理設計,並參考案例程式碼將其真正落地。

本場 Chat 你將學到以下內容:

  1. DDD 四層架構模式
  2. 微服務物理設計方案
  3. DCI、Domain Event和DIP 驅動物理設計演進
  4. 多個程式碼案例

一場場看太麻煩?成為 GitChat 會員,暢享 1000+ 場 Chat !點選檢視