自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DDD實踐:如何用DDD重構(gòu)中臺業(yè)務(wù)模型?

開發(fā) 前端
互聯(lián)網(wǎng)電商平臺和傳統(tǒng)核心應(yīng)用,兩者面向的渠道和客戶不一樣,但銷售的產(chǎn)品卻很相似,它們之間的業(yè)務(wù)模型既有相同的地方,又有不同的地方?,F(xiàn)在我拿保險行業(yè)的互聯(lián)網(wǎng)電商和傳統(tǒng)核心應(yīng)用來做個對比分析。

進入 21 世紀,互聯(lián)網(wǎng)應(yīng)用迅猛發(fā)展,眾多傳統(tǒng)企業(yè)紛紛 “觸網(wǎng)”,搭建起自己的互聯(lián)網(wǎng)電商平臺。隨后,微信、App 等移動互聯(lián)應(yīng)用強勢崛起,掀起了新一輪的移動應(yīng)用熱潮。

這些移動互聯(lián)應(yīng)用,大多面向個人用戶或第三方,市場需求瞬息萬變,這就要求它們必須以敏捷的速度適應(yīng)市場的變化。為了滿足快速響應(yīng)與頻繁發(fā)版的需求,許多移動互聯(lián)網(wǎng)應(yīng)用選擇獨立于傳統(tǒng)核心系統(tǒng)進行建設(shè)。然而,兩者承載的業(yè)務(wù)大多相似,這就極易導致業(yè)務(wù)能力出現(xiàn)重疊。

阿里巴巴曾引領(lǐng)傳統(tǒng)企業(yè)向互聯(lián)網(wǎng)電商轉(zhuǎn)型。如今,時代進入新的歷史時期,在阿里巴巴提出中臺戰(zhàn)略后,眾多企業(yè)緊隨其后,高舉中臺大旗,轟轟烈烈地踏上數(shù)字化轉(zhuǎn)型之路。那么,傳統(tǒng)企業(yè)在中臺轉(zhuǎn)型過程中,如何從錯綜復雜的業(yè)務(wù)里構(gòu)建中臺業(yè)務(wù)模型呢?今天,我將通過一個傳統(tǒng)企業(yè)中臺建模的案例,帶你運用 DDD 的設(shè)計思想,一同構(gòu)建中臺業(yè)務(wù)模型。

傳統(tǒng)企業(yè)應(yīng)用分析

互聯(lián)網(wǎng)電商平臺和傳統(tǒng)核心應(yīng)用,兩者面向的渠道和客戶不一樣,但銷售的產(chǎn)品卻很相似,它們之間的業(yè)務(wù)模型既有相同的地方,又有不同的地方?,F(xiàn)在我拿保險行業(yè)的互聯(lián)網(wǎng)電商和傳統(tǒng)核心應(yīng)用來做個對比分析。

我們看一下下面這張圖,這兩者在業(yè)務(wù)功能上會有很多相似和差異,這種相似和差異主要體現(xiàn)在四個方面。

圖片圖片


1.核心能力的重復建設(shè)

以保險行業(yè)為例,當傳統(tǒng)保險核心應(yīng)用與互聯(lián)網(wǎng)電商平臺銷售同質(zhì)保險產(chǎn)品時,二者在核心業(yè)務(wù)流程和功能上呈現(xiàn)出相似性。傳統(tǒng)保險核心應(yīng)用具備報價、投保、核保和出單等功能,互聯(lián)網(wǎng)電商平臺同樣也有這些功能。這就導致在核心業(yè)務(wù)能力上不可避免地出現(xiàn)功能重疊,造成資源浪費和管理成本增加。

2.通用能力的重復建設(shè)

傳統(tǒng)核心應(yīng)用的通用平臺通常規(guī)模龐大、功能齊全,但也較為笨重。互聯(lián)網(wǎng)電商平臺雖然依賴這些通用能力,但為了保持自身的敏捷性,往往會自行搭建縮小版的通用功能,例如用戶管理、客戶管理等。這種重復建設(shè)不僅耗費人力、物力,還使得企業(yè)內(nèi)部系統(tǒng)架構(gòu)變得更為復雜。

3.業(yè)務(wù)職能的分離建設(shè)

部分業(yè)務(wù)功能在互聯(lián)網(wǎng)電商平臺和傳統(tǒng)核心應(yīng)用中分別建設(shè),且二者功能互補,共同構(gòu)成完整的業(yè)務(wù)職能。以繳費功能來說,互聯(lián)網(wǎng)電商平臺主要面向個人客戶,多采用支付寶和微信支付等便捷方式;而傳統(tǒng)核心應(yīng)用主要在柜臺操作,依舊使用移動 POS 機繳費。為了確保業(yè)務(wù)模型的完整性,在構(gòu)建中臺業(yè)務(wù)模型時,可考慮將這兩部分進行重組,形成一個完整的業(yè)務(wù)模型。

4.前后端完全獨立建設(shè)

傳統(tǒng)核心應(yīng)用主要服務(wù)于柜臺業(yè)務(wù),因此并不需要互聯(lián)網(wǎng)電商平臺所具備的在線客服、話務(wù)、訂單和購物車等功能;而互聯(lián)網(wǎng)電商平臺主要面向個人客戶,也無需后端較為復雜的再保、傭金、打印等功能。在構(gòu)建中臺業(yè)務(wù)模型時,針對這種情況,應(yīng)當區(qū)別對待,將面向后端業(yè)務(wù)管理的應(yīng)用沉淀到后臺,把前端能力構(gòu)建成面向互聯(lián)網(wǎng)渠道的通用中臺,如訂單中臺等。這樣的處理方式能夠有效整合資源,提升企業(yè)的整體運營效率。

如何避免重復造輪子?

要有效避免企業(yè)內(nèi)部的重復建設(shè),關(guān)鍵在于深入理解中臺的理念和思想。我們常說 “中臺是企業(yè)級能力復用平臺”,這里的 “復用” 通俗來講,就是重復使用,目的就是防止做重復造輪子這種浪費資源的事。

中臺的設(shè)計思想與 “高內(nèi)聚、低耦合” 的設(shè)計原則高度契合。所謂高內(nèi)聚,就是把相關(guān)的業(yè)務(wù)行為集中整合在一起,不相關(guān)的行為則安排到其他地方。這樣一來,要是需要修改某個業(yè)務(wù)行為,只需在一處進行修改即可。沒錯,中臺就該遵循 “高內(nèi)聚、松耦合” 的原則,實現(xiàn)企業(yè)級的能力復用。

那當企業(yè)遇到重復造輪子的情況時,該如何應(yīng)對呢?這就需要站在企業(yè)整體的高度去考量,將那些重復的、需要共享的通用能力和核心能力沉淀到中臺。同時,把分散的業(yè)務(wù)能力重新組合,形成完整的業(yè)務(wù)板塊,以此構(gòu)建可復用的中臺業(yè)務(wù)模型。具體來說,前端的個性化能力就歸前端負責,后端的管理能力則由后臺承擔。通過這種方式,建立起前、中、后臺邊界清晰,又能相互融合協(xié)作的企業(yè)級可復用業(yè)務(wù)模型,從而提升企業(yè)整體的運營效率和資源利用率,避免不必要的重復建設(shè)。

如何構(gòu)建中臺業(yè)務(wù)模型?

我們可以用 DDD 領(lǐng)域建模的方法來構(gòu)建中臺業(yè)務(wù)模型。你可以選擇兩種建模策略:自頂向下和自底向上的策略。具體采用哪種策略,你需要結(jié)合公司的具體情況來分析,下面我就來介紹一下這兩種策略。

1. 自頂向下的策略

在企業(yè)數(shù)字化轉(zhuǎn)型進程中,有效規(guī)避重復建設(shè)是提升效率、節(jié)約資源的關(guān)鍵,而這離不開對中臺理念與思想的深度領(lǐng)會。中臺被定義為 “企業(yè)級能力復用平臺”,“復用” 即重復使用,旨在杜絕重復造輪子這類資源浪費現(xiàn)象。

中臺設(shè)計思想與 “高內(nèi)聚、低耦合” 原則緊密相連。高內(nèi)聚是將關(guān)聯(lián)業(yè)務(wù)行為整合一處,無關(guān)行為放置別處,這使得業(yè)務(wù)行為修改只需在一處操作,十分便捷。中臺正是遵循 “高內(nèi)聚、松耦合” 原則,達成企業(yè)級能力復用。

當企業(yè)面臨重復造輪子問題時,需從企業(yè)整體視角出發(fā),將重復且需共享的通用能力、核心能力沉淀到中臺,整合分散的業(yè)務(wù)能力,構(gòu)建可復用的中臺業(yè)務(wù)模型。具體而言,前端負責個性化能力,后端承擔管理能力,構(gòu)建前、中、后臺邊界明晰且協(xié)同合作的企業(yè)級可復用業(yè)務(wù)模型,提升運營效率,避免重復建設(shè)。

下面介紹第一種策略 —— 自頂向下。這種策略的核心是先開展頂層設(shè)計,從最高領(lǐng)域逐步細化分解至中臺,并分別構(gòu)建領(lǐng)域模型。依據(jù)業(yè)務(wù)屬性,中臺又可分為通用中臺和核心中臺。在領(lǐng)域建模階段,主要依據(jù)業(yè)務(wù)實際狀況進行,暫不考慮現(xiàn)有系統(tǒng)。自頂向下策略適用于全新應(yīng)用系統(tǒng)開發(fā),或是舊系統(tǒng)全面重構(gòu)的情形。由于不受現(xiàn)有系統(tǒng)的制約,可采用 DDD 領(lǐng)域逐級分解的領(lǐng)域建模方法。主要步驟如下:

  • 領(lǐng)域分解:把領(lǐng)域拆分為子域,子域包含核心域、通用域和支撐域。
  • 子域建模:對各子域進行建模,明確領(lǐng)域邊界,構(gòu)建領(lǐng)域模型和限界上下文。
  • 微服務(wù)設(shè)計:依據(jù)限界上下文進行微服務(wù)設(shè)計。

圖片圖片

2. 自底向上的策略

在闡述完自頂向下的策略后,下面為你介紹第二種策略 —— 自底向上。這種策略的特點是緊密依托業(yè)務(wù)和系統(tǒng)的當前實際狀況來開展領(lǐng)域建模工作。

其具體實施過程如下:首先,針對每個系統(tǒng)所處的業(yè)務(wù)域分別進行全面的領(lǐng)域建模。在這個過程中,深入剖析各個業(yè)務(wù)域的業(yè)務(wù)流程、規(guī)則以及數(shù)據(jù)關(guān)系等,從而構(gòu)建出相對獨立的領(lǐng)域模型。接著,進行業(yè)務(wù)域?qū)R操作,即仔細甄別出那些具有相同或相似業(yè)務(wù)功能的領(lǐng)域模型。通過對比分析這些模型之間的差異,對領(lǐng)域?qū)ο筮M行重新組合,進而對領(lǐng)域模型進行重構(gòu)。在這一過程中,能夠有效沉淀出公共的、可復用的業(yè)務(wù)能力,同時將原本分散的業(yè)務(wù)模型進行有機整合 ,形成更為高效、統(tǒng)一的業(yè)務(wù)架構(gòu)。

自底向上策略尤其適用于遺留系統(tǒng)業(yè)務(wù)模型的演進式重構(gòu)。通過這種方式,能夠充分利用現(xiàn)有系統(tǒng)的資源,在不進行大規(guī)模推倒重建的基礎(chǔ)上,逐步優(yōu)化和完善業(yè)務(wù)模型,降低系統(tǒng)改造的風險和成本。

接下來,我將以互聯(lián)網(wǎng)電商和傳統(tǒng)核心應(yīng)用的幾個典型業(yè)務(wù)域為實例,詳細為你講解如何運用自底向上的策略來構(gòu)建中臺業(yè)務(wù)模型,主要分為以下三個步驟。

第一步:鎖定系統(tǒng)所在業(yè)務(wù)域,構(gòu)建領(lǐng)域模型。

鎖定系統(tǒng)所在的業(yè)務(wù)域,采用事件風暴,找出領(lǐng)域?qū)ο?,?gòu)建聚合,劃分限界上下文,建立領(lǐng)域模型??匆幌孪旅孢@張圖,我們選取了傳統(tǒng)核心應(yīng)用的用戶、客戶、傳統(tǒng)收付和承保四個業(yè)務(wù)域以及互聯(lián)網(wǎng)電商業(yè)務(wù)域,共計五個業(yè)務(wù)域來完成領(lǐng)域建模。

圖片圖片

從上述示意圖中,我們能夠清晰地看到,傳統(tǒng)核心系統(tǒng)共構(gòu)建了八個領(lǐng)域模型。在用戶域,搭建了用戶認證和權(quán)限這兩個領(lǐng)域模型;客戶域則構(gòu)建了個人與團體兩個領(lǐng)域模型;傳統(tǒng)收付領(lǐng)域構(gòu)建了 POS 刷卡領(lǐng)域模型;承保域構(gòu)建了定報價、投保和保單管理三個領(lǐng)域模型。而互聯(lián)網(wǎng)電商構(gòu)建了報價、投保、訂單、客戶、用戶認證和移動收付六個領(lǐng)域模型。

對比這些領(lǐng)域模型清單,不難發(fā)現(xiàn),傳統(tǒng)核心系統(tǒng)與互聯(lián)網(wǎng)電商之間存在諸多名稱相似的領(lǐng)域模型。經(jīng)過深入分析會發(fā)現(xiàn),這些看似相似的領(lǐng)域模型,實則存在業(yè)務(wù)能力重復的情況,或者像移動支付與傳統(tǒng)支付這樣,業(yè)務(wù)職能處于分散狀態(tài)。

基于此,在構(gòu)建中臺業(yè)務(wù)模型時,我們就需要重點聚焦這些領(lǐng)域模型。將不同領(lǐng)域模型中重復的業(yè)務(wù)能力,精準沉淀到中臺業(yè)務(wù)模型中,同時把分散的領(lǐng)域模型整合為統(tǒng)一的中臺業(yè)務(wù)模型,最終對外提供統(tǒng)一且共享的中臺服務(wù)。如此一來,便能有效提升企業(yè)資源的利用效率,減少重復建設(shè)帶來的資源浪費,推動企業(yè)數(shù)字化轉(zhuǎn)型的順利進行。

第二步:對齊業(yè)務(wù)域,構(gòu)建中臺業(yè)務(wù)模型。

從這張圖中,我們能直觀地發(fā)現(xiàn),右側(cè)傳統(tǒng)核心的領(lǐng)域模型數(shù)量明顯多于左側(cè)互聯(lián)網(wǎng)電商的領(lǐng)域模型。由此,我們可以初步推斷:傳統(tǒng)核心主要面向企業(yè)內(nèi)部的大部分應(yīng)用,追求全面覆蓋,所以其領(lǐng)域模型相對完備;而互聯(lián)網(wǎng)電商僅面向單一渠道,領(lǐng)域模型相對單一。

這一結(jié)論為我們構(gòu)建中臺業(yè)務(wù)模型提供了方向。我們可以將傳統(tǒng)核心的領(lǐng)域模型作為構(gòu)建中臺業(yè)務(wù)模型的主要依據(jù),把互聯(lián)網(wǎng)電商領(lǐng)域模型當作輔助。具體來說,先把互聯(lián)網(wǎng)電商中重復的能力整合到傳統(tǒng)核心的領(lǐng)域模型中,互聯(lián)網(wǎng)電商則僅保留像訂單這類個性化能力。

在中臺業(yè)務(wù)建模過程中,我們不僅要注重領(lǐng)域模型的完備性,以確保業(yè)務(wù)的全面支持;還要充分考慮不同渠道對市場的敏捷響應(yīng)需求,使中臺既能承載豐富的業(yè)務(wù)功能,又能靈活應(yīng)對市場變化,從而提升企業(yè)整體的競爭力和運營效率,有力推動企業(yè)數(shù)字化轉(zhuǎn)型進程。

圖片圖片

基于已有的構(gòu)建中臺業(yè)務(wù)模型思路,我們正式開啟構(gòu)建之旅。首先,從互聯(lián)網(wǎng)電商和傳統(tǒng)核心的領(lǐng)域模型入手,歸納并分離出能夠覆蓋這兩個域的全部業(yè)務(wù)子域。經(jīng)過深入分析,我們確定了用戶、客戶、承保、收付和訂單這五個業(yè)務(wù)域,它們將作為領(lǐng)域模型對比分析的基準域。

接下來,我以客戶業(yè)務(wù)域為例,詳細闡述客戶中臺業(yè)務(wù)模型的構(gòu)建過程。互聯(lián)網(wǎng)電商的客戶主要面向個人客戶,除了具備個人客戶信息管理功能,出于營銷目的,還設(shè)有客戶積分功能。所以,其領(lǐng)域模型包含個人和積分兩個聚合。反觀傳統(tǒng)核心客戶,不僅支持個人客戶,還涵蓋單位和組織機構(gòu)等團體客戶,擁有個人和團體兩個領(lǐng)域模型。在個人領(lǐng)域模型中,除個人客戶信息管理功能外,還涉及個人客戶的評級、重復客戶的歸并以及客戶的統(tǒng)一視圖等功能,對應(yīng)個人、視圖、評級和歸并四個聚合。

構(gòu)建多業(yè)務(wù)域中臺業(yè)務(wù)模型的關(guān)鍵在于,找出同一業(yè)務(wù)域內(nèi)所有同類業(yè)務(wù)的領(lǐng)域模型,對域內(nèi)領(lǐng)域模型和聚合的差異與共同點展開對比分析,突破原有的模型框架,完成新中臺業(yè)務(wù)模型的重組或歸并。我們將互聯(lián)網(wǎng)電商和傳統(tǒng)核心的領(lǐng)域模型進行分解后,發(fā)現(xiàn)了五個與個人客戶領(lǐng)域相關(guān)的聚合,分別是個人、積分、評級、歸并和視圖。這些聚合原本分散在不同的領(lǐng)域模型中,現(xiàn)在需要打破原有的領(lǐng)域模型限制,進行功能沉淀和聚合的重新組合,重新確定這些聚合的限界上下文,進而重構(gòu)領(lǐng)域模型。最終,個人客戶的領(lǐng)域模型重構(gòu)如下:將個人、歸并和視圖三個聚合重構(gòu)成個人領(lǐng)域模型,主要負責客戶信息管理;評級和積分兩個聚合重構(gòu)成評級積分領(lǐng)域模型,主要面向個人客戶。到這里,個人客戶領(lǐng)域模型構(gòu)建完成。

等等,似乎還有遺漏。沒錯,還有團體客戶領(lǐng)域模型!實際上,團體客戶相對簡單,因為它僅在傳統(tǒng)核心中出現(xiàn),我們直接將其在傳統(tǒng)核心中的領(lǐng)域模型拿來使用即可。至此,我們成功完成了客戶中臺業(yè)務(wù)模型的構(gòu)建,該中臺包含個人、團體和評級積分三個領(lǐng)域模型。

通過這次客戶中臺業(yè)務(wù)模型的構(gòu)建過程,你是否掌握了構(gòu)建中臺業(yè)務(wù)模型的要點呢?簡單總結(jié)就是:“分域建模型,找準基準域,劃定上下文,聚合重歸類?!?其他業(yè)務(wù)域的構(gòu)建過程亦是如此,這里就不再逐一贅述。大家可以自行練習,將其作為課后作業(yè)。完成后,可對照下面這張圖進行檢查,這是其他業(yè)務(wù)域重構(gòu)后的中臺業(yè)務(wù)模型。

圖片圖片

第三步:中臺歸類,根據(jù)領(lǐng)域模型設(shè)計微服務(wù)。

完成中臺業(yè)務(wù)建模后,我們就有了下面這張圖。從這張圖中我們可以看到總共構(gòu)建了多少個中臺,中臺下面有哪些領(lǐng)域模型,哪些中臺是通用中臺,哪些中臺是核心中臺,中臺的基本信息等等,都一目了然。你根據(jù)中臺下的領(lǐng)域模型就可以設(shè)計微服務(wù)了。

圖片圖片

重構(gòu)過程中的領(lǐng)域?qū)ο?/span>

上面主要是從聚合的角度來描述中臺業(yè)務(wù)模型的重組,是相對高階的業(yè)務(wù)模塊的重構(gòu)。業(yè)務(wù)模型重構(gòu)和聚合重組,往往會帶來領(lǐng)域?qū)ο蠛蜆I(yè)務(wù)行為的變化。下面我?guī)懔私庖幌?,在領(lǐng)域模型重組過程中,發(fā)生在更底層的領(lǐng)域?qū)ο蟮幕顒?。我們還是以客戶為例來講述。由于對象過多,我只選取了部分領(lǐng)域?qū)ο蠛蜆I(yè)務(wù)行為。傳統(tǒng)核心客戶領(lǐng)域模型重構(gòu)之前,包含個人、團體和評級三個聚合,每個聚合內(nèi)部都有自己的聚合根、實體、方法和領(lǐng)域服務(wù)等。

圖片圖片

互聯(lián)網(wǎng)電商客戶領(lǐng)域模型重構(gòu)前包含個人和積分兩個聚合,每個聚合包含了自己的領(lǐng)域?qū)ο?、方法和領(lǐng)域服務(wù)等。

圖片圖片

將傳統(tǒng)核心和互聯(lián)網(wǎng)電商的客戶領(lǐng)域模型重構(gòu)成客戶中臺后,形成了個人、團體和評級積分這三個領(lǐng)域模型。其中,個人領(lǐng)域模型包含個人聚合,團體領(lǐng)域模型包含團體聚合,評級積分領(lǐng)域模型則由評級和積分兩個聚合組成。

這些新領(lǐng)域模型的領(lǐng)域?qū)ο蠖荚醋栽械念I(lǐng)域模型。不過,評級積分是經(jīng)過重組產(chǎn)生的領(lǐng)域模型,原有的聚合會帶著各自的領(lǐng)域?qū)ο笕谌胄碌念I(lǐng)域模型中。值得注意的是,根據(jù)新的業(yè)務(wù)要求,部分領(lǐng)域?qū)ο罂赡軙脑酆现蟹蛛x出來,重新組合到其他聚合里。

此外,新領(lǐng)域模型中的領(lǐng)域?qū)ο螅鐚嶓w、領(lǐng)域服務(wù)等,在完成重組后,可能還需要依據(jù)新的業(yè)務(wù)場景和需求進行代碼重構(gòu)。通過這樣的操作,能讓新領(lǐng)域模型更好地適應(yīng)業(yè)務(wù)發(fā)展,為企業(yè)的數(shù)字化轉(zhuǎn)型提供更有力的支持。

圖片圖片

責任編輯:武曉燕 來源: 二進制跳動
相關(guān)推薦

2023-02-20 14:44:22

DDD領(lǐng)域模型

2025-01-23 08:30:41

2023-08-28 07:28:41

項目領(lǐng)域?qū)?/a>充血模型

2022-11-07 14:45:26

轉(zhuǎn)轉(zhuǎn)價格DDD

2020-09-02 08:12:05

CodeDDD代碼

2021-05-20 08:51:33

設(shè)計驅(qū)動數(shù)據(jù)庫

2014-09-26 10:00:25

驅(qū)動設(shè)計DDD領(lǐng)域

2017-08-03 16:31:43

微服務(wù)架構(gòu)領(lǐng)域驅(qū)動設(shè)計數(shù)字化

2017-11-17 05:39:27

DDD建模模型

2021-10-09 11:54:46

DDD微服務(wù)業(yè)務(wù)

2022-08-29 09:14:01

戰(zhàn)略設(shè)計核心域支撐域

2021-11-18 13:14:08

DDD聚合代碼

2022-08-02 20:10:43

領(lǐng)域DDD

2023-04-14 10:20:41

系統(tǒng)實踐

2022-06-24 11:27:26

開發(fā)程序

2022-12-29 18:07:25

DDD電話機器人

2022-06-02 08:37:10

架構(gòu)DDDMVC

2023-08-29 08:57:03

事務(wù)腳本架構(gòu)模式業(yè)務(wù)場景

2021-07-26 08:10:24

微服務(wù)單體架構(gòu)

2024-08-05 01:29:47

MVC架構(gòu)模式分離模型
點贊
收藏

51CTO技術(shù)棧公眾號