5.4 組件化復(fù)用


? ? ?領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)除了可以簡(jiǎn)化業(yè)務(wù)復(fù)雜度,實(shí)現(xiàn)業(yè)務(wù)模型易于單元測(cè)試,提高系統(tǒng)業(yè)務(wù)的拓展能力以外,還有一個(gè)非常重要的特點(diǎn),就是提升的業(yè)務(wù)的復(fù)用性。
? ? ? 我們?cè)谥暗恼鹿?jié)中著重強(qiáng)調(diào)過(guò)要實(shí)現(xiàn)技術(shù)與業(yè)務(wù)的分離,當(dāng)我們將其分離開(kāi)以后,業(yè)務(wù)模型就將是純粹的業(yè)務(wù)邏輯的,而且業(yè)務(wù)模型對(duì)象又都是基本的Java類對(duì)象,并沒(méi)有特殊的技術(shù)框架依賴,業(yè)務(wù)模型對(duì)象可以作為單獨(dú)的module是存在,而且伴隨著業(yè)務(wù)模型的不斷升級(jí),還可以實(shí)現(xiàn)對(duì)業(yè)務(wù)模型的版本控制,從而讓業(yè)務(wù)模型實(shí)現(xiàn)業(yè)務(wù)組件化,從而大大提升了業(yè)務(wù)模型的復(fù)用性。

? ? ?就如同maven repository中對(duì)的springboot的版本管理一樣,未來(lái)我們也將建立與springboot技術(shù)組件一樣的業(yè)務(wù)模型組件庫(kù)。
而追求組件化的目的是為了實(shí)現(xiàn)組件模塊化編程。

? ? ?當(dāng)今國(guó)內(nèi)非?;馃岬牡痛a,以及GitHub上的Copilot,都是未來(lái)的編程方式。
? ? ?但是當(dāng)前低代碼平臺(tái)對(duì)于代碼的復(fù)用性比較差,更多的是通過(guò)快速的組件化完成界面功能的搭建,這樣是無(wú)法滿足系統(tǒng)的長(zhǎng)期維護(hù)的,更多的是作為短期快速交付的一種方式。
? ? ?而Copilot為代表的AI編程,其實(shí)也有些類似與低代碼平臺(tái),他們都是面對(duì)當(dāng)前的需求給出的代碼實(shí)現(xiàn),都不注重整個(gè)系統(tǒng)的一致性,不注重代碼的質(zhì)量、代碼的復(fù)用性以及架構(gòu)設(shè)計(jì)的統(tǒng)一。
? ? ? 我設(shè)想未來(lái)AI編程將會(huì)是以某一種設(shè)計(jì)思想與整體的大的技術(shù)框架作為AI的編程底座然后再去快速的完成代碼的自動(dòng)化編寫(xiě)。

? ? ? ?而基于DDD思想實(shí)現(xiàn)的業(yè)務(wù)模塊組件化以后,我們可以讓那些使用業(yè)務(wù)模型組件的技術(shù)操作通過(guò)提供自動(dòng)化的基礎(chǔ)設(shè)施庫(kù),或者是通過(guò)AI快速編碼就可以讓業(yè)務(wù)模型用到具體的功能場(chǎng)景中,而不再需要有大量的開(kāi)發(fā)工作,作為程序員更多的是維護(hù)與開(kāi)發(fā)業(yè)務(wù)模型組件。隨著AI技術(shù)的不斷的進(jìn)步,業(yè)務(wù)模型的組件開(kāi)發(fā)也會(huì)讓AI陸續(xù)接入,從而實(shí)現(xiàn)以我們自己建立的技術(shù)體系為底座的AI零代碼平臺(tái)。