
全國免費客服電話 18268652722 郵箱:www.jungshuodz@163.com
手機:18268652722
電話:18268652722
地址:寧波市北侖區大碶廟前山路45號
人氣:


領域驅動設計(DDD)是一種軟件開發方法,旨在幫助開發團隊更好地理解業務需求并將其映射到軟件設計中。使用領域專家、設計人員和開發人員能夠理解的通用語言作為相互溝通的工具,在溝通過程中發現領域概念,然后將這些概念設計成領域模型。
自20世紀80年代以來,他作為設計師和程序員參與了許多大型面向對象系統的設計和開發,涉及各種復雜的業務和技術領域。讀完這本書的短評后,我想有很多人認為這本書是正確的廢話。 10年前我讀這本書時也有同樣的感覺。 10年后,微服務開始流行,很多人認為這是正確的廢話。領域驅動設計已成為我的話題。當我再讀這本書的時候,我真的感覺我讀懂了。我認為秘密就在于領域驅動設計的六個字。
領域模型是指描述業務領域概念、業務規則和業務流程的模型。它包括實體、值對象、聚合根、領域服務等多個概念。領域模型:領域模型就好比是描述領域中的實體、屬性、關系和行為的地圖。從研發的理論經驗來看,領域是將軟件系統的核心業務功能集中到一個核心領域,包括實體、值對象、領域服務、資源庫、聚合等概念。
DDD可以基于領域模型邊界和上下文邊界快速拆分微服務,使系統架構能夠適應業務的快速變化。比如,系統并發用戶數增長很快,單個應用很快就無法支撐。如果我們從一開始就使用DDD領域驅動設計,我們可以快速將服務拆分為多個微服務,以適應快速增長的用戶數量。列表視圖主要由兩部分組成。領域服務主要負責實體相關的屬性和路由動作相關的操作。
領域驅動設計(DDD) 的理念由Eric Evans 在他的同名書中首次描述[1] - 是將我們的注意力集中在領域上。整個過程大致是這樣的。開發團隊和領域專家共同努力,通過通用語言(Ubiquitous Language)來理解和消化領域知識,將領域知識一一提取并劃分為子領域(核心子領域、通用子領域、支持子領域),并在子域上建立模型,然后重復上述步驟,依此類推,建立一組適合當前域的模型。
下面是一些生動的比喻,可以幫助你更好地理解領域驅動設計中的幾個概念:基于領域模型的拆分、基于單一職責的拆分以及圍繞業務域的功能完整性。當可以自由選擇重構的部分時,首先應該著眼于更好地提取核心領域,完善核心的分離,將支撐子領域細化為通用子領域。
因此,在建立領域知識時,我們(開發人員和領域專家)必須交換知識。知識范圍涉及領域模型的各個元素。如果一方對模型的描述讓另一方感到困惑,那么他應該立即更改。描述直至雙方都能接受并理解為止。
相關推薦