領(lǐng)域驅(qū)動設(shè)計大揭秘
時間:2022-03-03 21:56:02 | 來源:行業(yè)動態(tài)
時間:2022-03-03 21:56:02 來源:行業(yè)動態(tài)
作為《解構(gòu)領(lǐng)域驅(qū)動設(shè)計》作者,同時也是民航信息技術(shù)總監(jiān),張逸對于DDD有著自己的獨特看法,比如數(shù)據(jù)驅(qū)動與領(lǐng)域驅(qū)動、領(lǐng)域驅(qū)動設(shè)計下的單體架構(gòu)等。
張逸在主題分享中表示,數(shù)據(jù)驅(qū)動進入架構(gòu)設(shè)計領(lǐng)域造成模型沒有上下文的邊界,而DDD引入了限界上下文,通過業(yè)務(wù)能力完成重用,進而確定領(lǐng)域模型的知識語境,讓架構(gòu)順應(yīng)業(yè)務(wù)的變化方向。
DDD的特點與價值在于它定義的模式,限界上下文與聚合是DDD的核心模式。限界上下文是架構(gòu)層次的自治單元,是業(yè)務(wù)能力的重用而非模型的重用。而微服務(wù)的協(xié)作就是限界上下文的協(xié)作,領(lǐng)域驅(qū)動設(shè)計成為顯學(xué),進入黃金時代。
單體架構(gòu)(Monolithic Architecture)是一種將所有功能打包在一個容器中運行的設(shè)計風(fēng)格,一個實例中集成了一個系統(tǒng)的所有功能。從中大型項目的業(yè)務(wù)形態(tài)、復(fù)雜度及響應(yīng)速度等維度看單體架構(gòu)時可以發(fā)現(xiàn)它存在擴展性差、無法實現(xiàn)復(fù)雜業(yè)務(wù)、技術(shù)升級困難、開發(fā)效率低等問題。
張逸表示,常見的區(qū)分單體架構(gòu)和微服務(wù)架構(gòu)的做法并不正確,雖然沒有限界上下文的單體架構(gòu)可能導(dǎo)致大泥球,但是單體架構(gòu)也要通過業(yè)務(wù)能力進行縱向切分。如果單體架構(gòu)通過限界上下文進行邊界控制,其實可以降低微服務(wù)架構(gòu)風(fēng)格的演化成本,也能規(guī)避過度微服務(wù)化帶來的技術(shù)風(fēng)險。
另外,張逸認為,領(lǐng)域驅(qū)動設(shè)計存在四大天生不足,比如領(lǐng)域驅(qū)動設(shè)計缺乏一個規(guī)范的過程指導(dǎo),使得其缺乏可操作性;領(lǐng)域驅(qū)動設(shè)計沒有匹配的需求管理體系等,為此,我們需要領(lǐng)域驅(qū)動設(shè)計統(tǒng)一過程,確保DDD的落地實施。
關(guān)鍵詞:設(shè)計,領(lǐng)域