— 新聞中心 —
NEWS CENTRES郵箱:www.jungshuodz@163.com
手機(jī):18268652722
電話:18268652722
地址:寧波市北侖區(qū)大碶廟前山路45號
人氣:
領(lǐng)域驅(qū)動設(shè)計(DDD)是一種軟件開發(fā)方法,旨在幫助開發(fā)團(tuán)隊更好地理解業(yè)務(wù)需求并將其映射到軟件設(shè)計中。使用領(lǐng)域?qū)<?、設(shè)計人員和開發(fā)人員能夠理解的通用語言作為相互溝通的工具,在溝通過程中發(fā)現(xiàn)領(lǐng)域概念,然后將這些概念設(shè)計成領(lǐng)域模型。
自20世紀(jì)80年代以來,他作為設(shè)計師和程序員參與了許多大型面向?qū)ο笙到y(tǒng)的設(shè)計和開發(fā),涉及各種復(fù)雜的業(yè)務(wù)和技術(shù)領(lǐng)域。讀完這本書的短評后,我想有很多人認(rèn)為這本書是正確的廢話。 10年前我讀這本書時也有同樣的感覺。 10年后,微服務(wù)開始流行,很多人認(rèn)為這是正確的廢話。領(lǐng)域驅(qū)動設(shè)計已成為我的話題。當(dāng)我再讀這本書的時候,我真的感覺我讀懂了。我認(rèn)為秘密就在于領(lǐng)域驅(qū)動設(shè)計的六個字。
領(lǐng)域模型是指描述業(yè)務(wù)領(lǐng)域概念、業(yè)務(wù)規(guī)則和業(yè)務(wù)流程的模型。它包括實(shí)體、值對象、聚合根、領(lǐng)域服務(wù)等多個概念。領(lǐng)域模型:領(lǐng)域模型就好比是描述領(lǐng)域中的實(shí)體、屬性、關(guān)系和行為的地圖。從研發(fā)的理論經(jīng)驗(yàn)來看,領(lǐng)域是將軟件系統(tǒng)的核心業(yè)務(wù)功能集中到一個核心領(lǐng)域,包括實(shí)體、值對象、領(lǐng)域服務(wù)、資源庫、聚合等概念。
DDD可以基于領(lǐng)域模型邊界和上下文邊界快速拆分微服務(wù),使系統(tǒng)架構(gòu)能夠適應(yīng)業(yè)務(wù)的快速變化。比如,系統(tǒng)并發(fā)用戶數(shù)增長很快,單個應(yīng)用很快就無法支撐。如果我們從一開始就使用DDD領(lǐng)域驅(qū)動設(shè)計,我們可以快速將服務(wù)拆分為多個微服務(wù),以適應(yīng)快速增長的用戶數(shù)量。列表視圖主要由兩部分組成。領(lǐng)域服務(wù)主要負(fù)責(zé)實(shí)體相關(guān)的屬性和路由動作相關(guān)的操作。
領(lǐng)域驅(qū)動設(shè)計(DDD) 的理念由Eric Evans 在他的同名書中首次描述[1] - 是將我們的注意力集中在領(lǐng)域上。整個過程大致是這樣的。開發(fā)團(tuán)隊和領(lǐng)域?qū)<夜餐Γㄟ^通用語言(Ubiquitous Language)來理解和消化領(lǐng)域知識,將領(lǐng)域知識一一提取并劃分為子領(lǐng)域(核心子領(lǐng)域、通用子領(lǐng)域、支持子領(lǐng)域),并在子域上建立模型,然后重復(fù)上述步驟,依此類推,建立一組適合當(dāng)前域的模型。
下面是一些生動的比喻,可以幫助你更好地理解領(lǐng)域驅(qū)動設(shè)計中的幾個概念:基于領(lǐng)域模型的拆分、基于單一職責(zé)的拆分以及圍繞業(yè)務(wù)域的功能完整性。當(dāng)可以自由選擇重構(gòu)的部分時,首先應(yīng)該著眼于更好地提取核心領(lǐng)域,完善核心的分離,將支撐子領(lǐng)域細(xì)化為通用子領(lǐng)域。
因此,在建立領(lǐng)域知識時,我們(開發(fā)人員和領(lǐng)域?qū)<遥┍仨毥粨Q知識。知識范圍涉及領(lǐng)域模型的各個元素。如果一方對模型的描述讓另一方感到困惑,那么他應(yīng)該立即更改。描述直至雙方都能接受并理解為止。
相關(guān)推薦