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

領(lǐng)域建模的常見問題及解決方案

人工智能
DDD提出的子領(lǐng)域可以有效分解問題空間,限界上下文和聚合在不同層次上完成對解空間的分解,都是建模的重要支點。

根據(jù)我個人的領(lǐng)域建模經(jīng)驗,總結(jié)了在領(lǐng)域建模過程中遇見的常見問題及對應(yīng)的解決方案。

問題一

問題描述:業(yè)務(wù)專家與建模專家之間形成能力的“阻抗不匹配”。

就像對象和關(guān)系的“阻抗不匹配”一樣,業(yè)務(wù)專家精通業(yè)務(wù),卻往往不具備建模能力,而建模專家又往往不熟悉業(yè)務(wù)(如我,只能泛泛地了解業(yè)務(wù)知識)。

這就是DDD為何強調(diào)領(lǐng)域?qū)<遗c開發(fā)團隊工作在一起的主要原因。

解決方案:除了讓業(yè)務(wù)專家和建模專家共同工作,取長補短之外,還有一個辦法,就是向企業(yè)的業(yè)務(wù)專家開展領(lǐng)域建模的培訓(xùn),以提升他們的建模能力;同時,盡可能采用團隊成員共同參與的協(xié)作化可視化建模,以促進有效溝通,快速反饋,有效形成業(yè)務(wù)專家與建模專家的合力。

圖片圖片

為何事件風(fēng)暴得到大多數(shù)領(lǐng)域?qū)<业恼J可,并成為一種主流的建模方法?其中一個原因就在于它通過可視化工作坊的形式,為業(yè)務(wù)專家和建模專家營造了良好的溝通氛圍和高效的溝通機制。所謂的“糊墻”游戲,使得參與者可以釋放自己,交頭接耳,大聲討論,清晰地表達各自的想法。大家協(xié)同建模,通過即時貼展現(xiàn)業(yè)務(wù)流程與事件流,一旦將它們掛在墻上,就很容易發(fā)現(xiàn)大家對業(yè)務(wù)問題理解不一致的地方,通過發(fā)現(xiàn)差異統(tǒng)一認識,也起到了傳播業(yè)務(wù)知識的目的。

可視化工作坊的形式可以有效杜絕“閉門造車”的專家建模,即便你不熟悉事件風(fēng)暴,你也可以采用其他的頭腦風(fēng)暴形式。

問題二

問題描述:在開展領(lǐng)域建模時,缺乏一套行之有效的方法與過程,導(dǎo)致“拍腦袋”建模和隨意建模成為常態(tài),無法穩(wěn)定地輸出高質(zhì)量的領(lǐng)域模型。

解決方案:通過引入DDD方法,建立適合團隊的固化建模過程,是成功建模的必要條件。

下圖是我總結(jié)的服務(wù)風(fēng)暴12步驟,要求團隊嚴格按照它規(guī)定的步驟逐步開展建模。

圖片圖片

遵循我總計的領(lǐng)域驅(qū)動設(shè)計統(tǒng)一過程,共分為三個階段:

  • 全局分析階段
  • 架構(gòu)映射階段
  • 領(lǐng)域建模階段

每個階段都有4個步驟,并給出了每個步驟的執(zhí)行過程與輸出結(jié)果。前一個步驟的輸出結(jié)果,又會成為后續(xù)步驟的重要輸入。

例如,我規(guī)定了全局分析階段的交付物包括業(yè)務(wù)流程圖、業(yè)務(wù)服務(wù)圖、業(yè)務(wù)服務(wù)規(guī)約和業(yè)務(wù)架構(gòu)視圖。

圖片圖片

圖片圖片

圖片圖片

圖片圖片

架構(gòu)映射階段的交付物包括系統(tǒng)上下文圖、限界上下文組件圖、API契約定義、服務(wù)調(diào)用時序圖和應(yīng)用架構(gòu)視圖。

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

領(lǐng)域建模階段的交付物包括限界上下文的代碼模型、靜態(tài)領(lǐng)域模型和動態(tài)領(lǐng)域模型。

圖片圖片

圖片圖片

圖片圖片

問題三

問題描述:面對業(yè)務(wù)復(fù)雜度高,規(guī)模龐大的問題空間,難以保證建模的質(zhì)量,也無法有效控制復(fù)雜度。

解決方案:需要遵循“分而治之”的思想,在各個層次開展抽象與分解的工作。

DDD提出的子領(lǐng)域可以有效分解問題空間,限界上下文和聚合在不同層次上完成對解空間的分解,都是建模的重要支點。下圖是我總結(jié)的DDD各層邊界控制的內(nèi)容。

圖片圖片

無論從問題空間到解空間,還是從戰(zhàn)略設(shè)計推進到戰(zhàn)術(shù)設(shè)計,領(lǐng)域驅(qū)動設(shè)計一直強調(diào)的核心思想,就是對邊界的界定與控制。

控制了模型(戰(zhàn)略層次和戰(zhàn)術(shù)層次)的邊界后,不僅因為縮小規(guī)模而降低了建模的復(fù)雜度,還能夠在規(guī)定好各個單元之間的協(xié)作機制后,將它們分配給不同的領(lǐng)域特性團隊,確定好職責(zé)邊界,開展并行建模,如此也可以極大提升建模的效率。

問題四

問題描述:容易出現(xiàn)大而全的領(lǐng)域模型,看起來很美,一旦落地,會發(fā)現(xiàn)得到的領(lǐng)域模型存在很大的問題。

解決方案:遵循“迭代建?!钡脑瓌t。迭代的過程是兩個方向不斷迭代的過程。

一個方向是在更高層次上追求“廣度優(yōu)先”,把建模工作盡可能覆蓋得更廣,形成統(tǒng)一而清晰的業(yè)務(wù)藍圖,包括主要的業(yè)務(wù)流程、劃分子領(lǐng)域、確定子領(lǐng)域與業(yè)務(wù)服務(wù)之間的關(guān)系,進而確定限界上下文、定義限界上下文外部的接口,明確限界上下文之間的協(xié)作關(guān)系。

另一個方向是選擇核心子領(lǐng)域追求“深度優(yōu)先”,深入到這些核心子領(lǐng)域映射的限界上下文內(nèi)部,編寫業(yè)務(wù)服務(wù)規(guī)約,迭代地開展領(lǐng)域分析建模和領(lǐng)域設(shè)計建模,甚至嘗試針對核心主流程對應(yīng)的限界上下文開展實現(xiàn)建模,輸出功能不完整,但具有可用特性的可運行代碼。

融合廣度優(yōu)先與深度優(yōu)先的迭代建模方式,和DDD結(jié)合起來,簡單來說就是戰(zhàn)略設(shè)計采用廣度優(yōu)先,戰(zhàn)術(shù)設(shè)計采用深度優(yōu)先。

這種迭代建模方式需遵循MVP(Minimal Viable Product,最小可用產(chǎn)品)思想。在確定了解空間的限界上下文,可以開展如下圖所示的領(lǐng)域建模方式:

圖片圖片

遵循MVP思想開展的迭代建模具有兩個優(yōu)勢:

  • 最小可用的領(lǐng)域模型:每次迭代獲得的領(lǐng)域模型都是可運行的,功能可驗證的,即在每次小步成功的基礎(chǔ)上開展增量式的迭代建模
  • 分析設(shè)計實現(xiàn)的分離與統(tǒng)一:分析建模、設(shè)計建模和實現(xiàn)建模的主導(dǎo)者不同,目標不同,方法不同,卻又都是在前者基礎(chǔ)上開展的,從而保證了三個步驟的分離與統(tǒng)一,既降低了復(fù)雜度,又避免了模型的不一致

我特別害怕企業(yè)搞轟轟烈烈的“建模運動”,從上到下打雞血,定任務(wù),高呼“奮戰(zhàn)30天,多快好省地打造企業(yè)級領(lǐng)域模型”,然后,集中核心成員加班加點完成一個貌似完整詳細、巨細無靡、規(guī)模龐大的超級領(lǐng)域模型,卻沒有產(chǎn)出哪怕一行可以工作的代碼。在得到這么一個超級領(lǐng)域模型之后,企業(yè)又召集許多業(yè)務(wù)專家和建模專家對它進行幾天封閉式的模型評審。這一做法雖然利用了團隊的力量,做了充分的溝通和協(xié)作,但和“閉門造車”的專家建模一樣,缺乏及時反饋與快速驗證,得到的大而全的領(lǐng)域模型很有可能只是一個看起來很美的空中樓閣。

責(zé)任編輯:武曉燕 來源: 逸言
相關(guān)推薦

2019-10-08 16:05:19

Redis數(shù)據(jù)庫系統(tǒng)

2010-08-31 16:09:04

DIV+CSS

2016-09-27 21:14:53

JavaURL

2011-07-26 16:05:19

Oracle數(shù)據(jù)庫服務(wù)器

2014-01-07 13:54:02

HadoopYARN

2024-05-24 10:56:24

PythonURL代碼

2024-10-30 11:00:00

Python列表索引

2010-09-01 14:51:12

CSSIEFirefox

2021-05-18 08:21:38

React HooksReact前端

2025-01-09 15:28:30

2010-08-26 12:59:29

marginCSS

2019-04-04 13:11:37

React內(nèi)存泄露memory leak

2010-08-04 10:20:30

Flex組件開發(fā)

2023-04-12 11:32:33

網(wǎng)絡(luò)

2024-05-09 15:00:38

Python編碼開發(fā)

2025-02-19 08:00:00

移動端移動設(shè)備移動開發(fā)

2011-05-06 17:25:58

硒鼓

2021-08-20 15:49:13

電腦主板維修

2011-02-22 14:00:16

vsftpd

2009-12-24 11:13:41

點贊
收藏

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