您好,登錄后才能下訂單哦!
我是2012年開始接觸DDD的,后續(xù)研讀過幾遍《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì):軟件核心復(fù)雜性應(yīng)對之道》,也用DDD做過項(xiàng)目??偟母惺苁荄DD的一些概念比較晦澀難懂,很難掌握,因此想寫個(gè)系列短文,希望能幫助大家更輕松地理解DDD。文章很多都是我個(gè)人體會(huì)和理解,難免有錯(cuò)誤,希望大家能及時(shí)指正,共同探討提高。前面短文鏈接:
輕松學(xué)DDD之一:模型驅(qū)動(dòng)設(shè)計(jì)
本文是系列短文第二篇,介紹如何高效消化知識。
在講如何消化知識前,我們要明確下建模的知識來源有哪些。首先我們通過下圖來考察模型、領(lǐng)域、軟件、現(xiàn)實(shí)世界、計(jì)算機(jī)系統(tǒng)等幾個(gè)概念的關(guān)聯(lián)。
從上面的認(rèn)知我們可以知道模型就是在用戶目標(biāo)和軟件實(shí)現(xiàn)技術(shù)的約束下對領(lǐng)域知識的精確化、結(jié)構(gòu)化和抽象。
由于建模依賴于在用戶目標(biāo)和軟件實(shí)現(xiàn)技術(shù)約束下的領(lǐng)域知識梳理,因此建模就要求領(lǐng)域?qū)<摇⒔<液蛙浖_發(fā)之間通過高效地溝通協(xié)作來有效地消化領(lǐng)域知識。下面我們從溝通媒介、溝通形式和目標(biāo)三個(gè)方面來展開說明如何做到這一點(diǎn)。
消化知識的溝通媒介可以是多種多樣,下面是幾種主要的溝通媒介:
有了溝通手段,我們還需要溝通形式,下面是一些主要的溝通形式:
知識消化的最終目標(biāo)無疑是構(gòu)建良好的模型,但是構(gòu)建良好的模型需要通過統(tǒng)一語言和精煉模型來支撐。
統(tǒng)一語言是指團(tuán)隊(duì)所有成員用統(tǒng)一的術(shù)語來指代領(lǐng)域概念和知識,它有如下幾方面:
我們知道簡單合理的軟件設(shè)計(jì)是軟件在長期的開發(fā)過程中能夠保持低成本修改的關(guān)鍵。在DDD中,領(lǐng)域模型的復(fù)雜度決定了軟件設(shè)計(jì)的復(fù)雜度,因此模型精煉就是我們消化領(lǐng)域知識的最重要的目標(biāo)。也就是說我們消化領(lǐng)域知識的目標(biāo)不是為了理解全部的領(lǐng)域知識;而是為了明確對于實(shí)現(xiàn)用戶需求而言,哪些領(lǐng)域知識是重要的,哪些是不重要的。模型精煉是一個(gè)持續(xù)的過程。隨著我們對于領(lǐng)域理解的不斷深入,模型會(huì)持續(xù)精煉。隨著需求的不斷變化,模型關(guān)注的最重要的概念也會(huì)不斷添加和刪除。
消化知識是如此之難,因此保證這些知識的平穩(wěn)傳承就很重要。盡管這些知識會(huì)沉淀在我們的文檔、UML和代碼等各種物質(zhì)載體之中,但是它們最重要的載體還是團(tuán)隊(duì)中深刻理解了這些知識的核心骨干,因此在軟件開發(fā)過程中保證這些核心骨干的相對穩(wěn)定才能保證知識的有效傳承,才能最終保證DDD的成功。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。