課程簡(jiǎn)介
本次交流重點(diǎn)在于講解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的方法體系,并將領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與業(yè)務(wù)分析與建模技術(shù)結(jié)合起來(lái),通過(guò)領(lǐng)域模型正確反映業(yè)務(wù)需求,以便于領(lǐng)域?qū)<遗c業(yè)務(wù)分析人員、開發(fā)團(tuán)隊(duì)就業(yè)務(wù)需求達(dá)成共識(shí),促進(jìn)對(duì)業(yè)務(wù)需求的理解,并建立面向領(lǐng)域的架構(gòu)體系以快速響應(yīng)需求變化。
目標(biāo)收益
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)能夠解決:
需求分析人員與開發(fā)團(tuán)隊(duì)的溝通問(wèn)題
從需求到開發(fā)實(shí)現(xiàn)的設(shè)計(jì)問(wèn)題
系統(tǒng)過(guò)于復(fù)雜導(dǎo)致代碼難以維護(hù)的開發(fā)問(wèn)題
本課程將從戰(zhàn)略設(shè)計(jì)到戰(zhàn)術(shù)設(shè)計(jì)全面講解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),結(jié)合微服務(wù)架構(gòu)、六邊形架構(gòu)以 及事件驅(qū)動(dòng)架構(gòu)和CQRS等知識(shí),引入大量案例通過(guò)工作坊形式引導(dǎo)學(xué)員掌握領(lǐng)域驅(qū)動(dòng)設(shè) 計(jì)的知識(shí),并最終在項(xiàng)目開發(fā)中落地。
需求分析人員和領(lǐng)域?qū)<覠o(wú)法與團(tuán)隊(duì)的設(shè)計(jì)人員和開發(fā)人員進(jìn)行有效溝通。需求分析人員 不了解軟件設(shè)計(jì),軟件設(shè)計(jì)人員常常會(huì)曲解需求內(nèi)容,這是軟件開發(fā)中容易出現(xiàn)的第一病 癥。它帶來(lái)的后果是設(shè)計(jì)頻繁變更,設(shè)計(jì)的軟件不滿足客戶需求。
培訓(xùn)對(duì)象
1、專注于行業(yè)軟件開發(fā)或互聯(lián)網(wǎng)開發(fā)的軟件從業(yè)者
2、希望掌握事件風(fēng)暴方法的業(yè)務(wù)分析人員與開發(fā)人員
3、希望提高領(lǐng)域建模與分析能力的軟件設(shè)計(jì)人員
4、希望掌握領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法并運(yùn)用到項(xiàng)目中的后端開發(fā)人員
課程大綱
第一部分 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)體系 |
以高屋建瓴的方式概括講解整個(gè)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)體系,內(nèi)容包括: ?經(jīng)典領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)體系 ?軟件系統(tǒng)復(fù)雜度剖析 ?領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)統(tǒng)一過(guò)程 講解由Eric Evans提出的經(jīng)典領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),對(duì)整套方法體系和過(guò)程有一個(gè)完整的理解,然后,剖析軟件系統(tǒng)的復(fù)雜度,明確復(fù)雜度的產(chǎn)生在于軟件系統(tǒng)的規(guī)模與業(yè)務(wù)需求的變化,由此形成業(yè)務(wù)復(fù)雜度與技術(shù)復(fù)雜度。而領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)通過(guò)限界上下文與領(lǐng)域建模可以在一定程度降低業(yè)務(wù)復(fù)雜度,響應(yīng)業(yè)務(wù)需求的變化,并通過(guò)隔離業(yè)務(wù)復(fù)雜度與技術(shù)復(fù)雜度整體降低軟件復(fù)雜度。 針對(duì)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)存在的不足,提出領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)統(tǒng)一過(guò)程,包括需求分析、架構(gòu)設(shè)計(jì)與領(lǐng)域建模等內(nèi)容,并在領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的指導(dǎo)原則下進(jìn)行。 案例分析: ?某航空公司地面保障系統(tǒng)的架構(gòu)設(shè)計(jì) 案例分析首先將根據(jù)復(fù)雜度分析,對(duì)整個(gè)系統(tǒng)的問(wèn)題空間進(jìn)行剖析,明確復(fù)雜度的成因,然后根據(jù)企業(yè)架構(gòu)思想,梳理業(yè)務(wù)架構(gòu)、應(yīng)用架構(gòu)、數(shù)據(jù)架構(gòu)與技術(shù)架構(gòu)之間的關(guān)系,推導(dǎo)出降低和控制系統(tǒng)復(fù)雜度的辦法。 |
第二部分 全景分析階段 |
對(duì)整個(gè)項(xiàng)目進(jìn)行業(yè)務(wù)的全局分析,內(nèi)容包括: ?全局分析的5W模型 ?價(jià)值需求分析 ?業(yè)務(wù)需求分析 全局分析階段會(huì)梳理目標(biāo)系統(tǒng)的價(jià)值需求和業(yè)務(wù)需求,利用5W模型梳理目標(biāo)系統(tǒng)的利益相關(guān)人、系統(tǒng)愿景和范圍,獲得價(jià)值需求,并在價(jià)值需求的指導(dǎo)下,梳理參與者、目標(biāo)系統(tǒng)與伴生系統(tǒng)之間的協(xié)作關(guān)系,獲得業(yè)務(wù)流程,再結(jié)合業(yè)務(wù)流程的三要素“角色、場(chǎng)景與時(shí)間”切分業(yè)務(wù)場(chǎng)景與業(yè)務(wù)服務(wù)。 在進(jìn)行價(jià)值需求分析與業(yè)務(wù)需求分析中,需要用到需求分析的方法,包括: ?商業(yè)模式畫布 ?服務(wù)藍(lán)圖 ?業(yè)務(wù)服務(wù)分析方法 |
第三部分 架構(gòu)映射階段 |
在領(lǐng)域驅(qū)動(dòng)的戰(zhàn)略設(shè)計(jì)階段,以領(lǐng)域?yàn)楹诵尿?qū)動(dòng)力,以限界上下文為核心模式構(gòu)建面向領(lǐng)域的架構(gòu)體系,內(nèi)容包括: ?限界上下文 ?上下文映射 ?領(lǐng)域驅(qū)動(dòng)架構(gòu) 通過(guò)全局分析階段輸出的業(yè)務(wù)場(chǎng)景與業(yè)務(wù)服務(wù),利用V模型從領(lǐng)域維度識(shí)別限界上下文。限界上下文作為業(yè)務(wù)能力的縱向切分、領(lǐng)域模型的知識(shí)語(yǔ)境,是響應(yīng)業(yè)務(wù)變化的關(guān)鍵架構(gòu)因素。由限界上下文之間的協(xié)作形成上下文映射,并根據(jù)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)原則,建立面向領(lǐng)域的架構(gòu)體系,形成以菱形對(duì)稱架構(gòu)與系統(tǒng)分層架構(gòu)為支撐的領(lǐng)域驅(qū)動(dòng)架構(gòu)。 工作坊: ?技術(shù)部落的架構(gòu)映射:根據(jù)全局分析輸出的業(yè)務(wù)需求對(duì)技術(shù)部落進(jìn)行架構(gòu)映射,識(shí)別出系統(tǒng)的限界上下文,確定限界上下文之間的關(guān)系。 |
第四部分 領(lǐng)域建模階段 |
以領(lǐng)域場(chǎng)景為建模核心開展領(lǐng)域模型驅(qū)動(dòng)設(shè)計(jì),是保證領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)落地的重要條件,內(nèi)容包括: ?領(lǐng)域分析建模 ?領(lǐng)域設(shè)計(jì)建模 ?領(lǐng)域?qū)崿F(xiàn)建模 在限界上下文的知識(shí)邊界內(nèi)分析領(lǐng)域邏輯,提煉領(lǐng)域概念,在統(tǒng)一語(yǔ)言的指導(dǎo)下迭代地進(jìn)行領(lǐng)域建模,包括建立清晰表達(dá)了領(lǐng)域概念的領(lǐng)域分析模型,與以聚合為核心要素的領(lǐng)域設(shè)計(jì)模型,通過(guò)服務(wù)驅(qū)動(dòng)設(shè)計(jì)確定每個(gè)領(lǐng)域模型對(duì)象的職責(zé),并順利地引導(dǎo)到領(lǐng)域?qū)崿F(xiàn)建模,以測(cè)試驅(qū)動(dòng)開發(fā)的流程編寫領(lǐng)域?qū)崿F(xiàn)代碼與測(cè)試代碼。在進(jìn)行領(lǐng)域建模時(shí),會(huì)使用到如下可視化建模方法: ?快速建模法 ?服務(wù)驅(qū)動(dòng)設(shè)計(jì) 案例分析: ?某系統(tǒng)的領(lǐng)域建模:利用業(yè)務(wù)服務(wù)規(guī)約,通過(guò)運(yùn)用快速建模法獲得領(lǐng)域分析模型,并在限界上下文的控制下識(shí)別聚合,然后按照服務(wù)驅(qū)動(dòng)設(shè)計(jì)獲得領(lǐng)域設(shè)計(jì)模型。 |
第一部分 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)體系 以高屋建瓴的方式概括講解整個(gè)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)體系,內(nèi)容包括: ?經(jīng)典領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)體系 ?軟件系統(tǒng)復(fù)雜度剖析 ?領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)統(tǒng)一過(guò)程 講解由Eric Evans提出的經(jīng)典領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),對(duì)整套方法體系和過(guò)程有一個(gè)完整的理解,然后,剖析軟件系統(tǒng)的復(fù)雜度,明確復(fù)雜度的產(chǎn)生在于軟件系統(tǒng)的規(guī)模與業(yè)務(wù)需求的變化,由此形成業(yè)務(wù)復(fù)雜度與技術(shù)復(fù)雜度。而領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)通過(guò)限界上下文與領(lǐng)域建??梢栽谝欢ǔ潭冉档蜆I(yè)務(wù)復(fù)雜度,響應(yīng)業(yè)務(wù)需求的變化,并通過(guò)隔離業(yè)務(wù)復(fù)雜度與技術(shù)復(fù)雜度整體降低軟件復(fù)雜度。 針對(duì)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)存在的不足,提出領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)統(tǒng)一過(guò)程,包括需求分析、架構(gòu)設(shè)計(jì)與領(lǐng)域建模等內(nèi)容,并在領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的指導(dǎo)原則下進(jìn)行。 案例分析: ?某航空公司地面保障系統(tǒng)的架構(gòu)設(shè)計(jì) 案例分析首先將根據(jù)復(fù)雜度分析,對(duì)整個(gè)系統(tǒng)的問(wèn)題空間進(jìn)行剖析,明確復(fù)雜度的成因,然后根據(jù)企業(yè)架構(gòu)思想,梳理業(yè)務(wù)架構(gòu)、應(yīng)用架構(gòu)、數(shù)據(jù)架構(gòu)與技術(shù)架構(gòu)之間的關(guān)系,推導(dǎo)出降低和控制系統(tǒng)復(fù)雜度的辦法。 |
第二部分 全景分析階段 對(duì)整個(gè)項(xiàng)目進(jìn)行業(yè)務(wù)的全局分析,內(nèi)容包括: ?全局分析的5W模型 ?價(jià)值需求分析 ?業(yè)務(wù)需求分析 全局分析階段會(huì)梳理目標(biāo)系統(tǒng)的價(jià)值需求和業(yè)務(wù)需求,利用5W模型梳理目標(biāo)系統(tǒng)的利益相關(guān)人、系統(tǒng)愿景和范圍,獲得價(jià)值需求,并在價(jià)值需求的指導(dǎo)下,梳理參與者、目標(biāo)系統(tǒng)與伴生系統(tǒng)之間的協(xié)作關(guān)系,獲得業(yè)務(wù)流程,再結(jié)合業(yè)務(wù)流程的三要素“角色、場(chǎng)景與時(shí)間”切分業(yè)務(wù)場(chǎng)景與業(yè)務(wù)服務(wù)。 在進(jìn)行價(jià)值需求分析與業(yè)務(wù)需求分析中,需要用到需求分析的方法,包括: ?商業(yè)模式畫布 ?服務(wù)藍(lán)圖 ?業(yè)務(wù)服務(wù)分析方法 |
第三部分 架構(gòu)映射階段 在領(lǐng)域驅(qū)動(dòng)的戰(zhàn)略設(shè)計(jì)階段,以領(lǐng)域?yàn)楹诵尿?qū)動(dòng)力,以限界上下文為核心模式構(gòu)建面向領(lǐng)域的架構(gòu)體系,內(nèi)容包括: ?限界上下文 ?上下文映射 ?領(lǐng)域驅(qū)動(dòng)架構(gòu) 通過(guò)全局分析階段輸出的業(yè)務(wù)場(chǎng)景與業(yè)務(wù)服務(wù),利用V模型從領(lǐng)域維度識(shí)別限界上下文。限界上下文作為業(yè)務(wù)能力的縱向切分、領(lǐng)域模型的知識(shí)語(yǔ)境,是響應(yīng)業(yè)務(wù)變化的關(guān)鍵架構(gòu)因素。由限界上下文之間的協(xié)作形成上下文映射,并根據(jù)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)原則,建立面向領(lǐng)域的架構(gòu)體系,形成以菱形對(duì)稱架構(gòu)與系統(tǒng)分層架構(gòu)為支撐的領(lǐng)域驅(qū)動(dòng)架構(gòu)。 工作坊: ?技術(shù)部落的架構(gòu)映射:根據(jù)全局分析輸出的業(yè)務(wù)需求對(duì)技術(shù)部落進(jìn)行架構(gòu)映射,識(shí)別出系統(tǒng)的限界上下文,確定限界上下文之間的關(guān)系。 |
第四部分 領(lǐng)域建模階段 以領(lǐng)域場(chǎng)景為建模核心開展領(lǐng)域模型驅(qū)動(dòng)設(shè)計(jì),是保證領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)落地的重要條件,內(nèi)容包括: ?領(lǐng)域分析建模 ?領(lǐng)域設(shè)計(jì)建模 ?領(lǐng)域?qū)崿F(xiàn)建模 在限界上下文的知識(shí)邊界內(nèi)分析領(lǐng)域邏輯,提煉領(lǐng)域概念,在統(tǒng)一語(yǔ)言的指導(dǎo)下迭代地進(jìn)行領(lǐng)域建模,包括建立清晰表達(dá)了領(lǐng)域概念的領(lǐng)域分析模型,與以聚合為核心要素的領(lǐng)域設(shè)計(jì)模型,通過(guò)服務(wù)驅(qū)動(dòng)設(shè)計(jì)確定每個(gè)領(lǐng)域模型對(duì)象的職責(zé),并順利地引導(dǎo)到領(lǐng)域?qū)崿F(xiàn)建模,以測(cè)試驅(qū)動(dòng)開發(fā)的流程編寫領(lǐng)域?qū)崿F(xiàn)代碼與測(cè)試代碼。在進(jìn)行領(lǐng)域建模時(shí),會(huì)使用到如下可視化建模方法: ?快速建模法 ?服務(wù)驅(qū)動(dòng)設(shè)計(jì) 案例分析: ?某系統(tǒng)的領(lǐng)域建模:利用業(yè)務(wù)服務(wù)規(guī)約,通過(guò)運(yùn)用快速建模法獲得領(lǐng)域分析模型,并在限界上下文的控制下識(shí)別聚合,然后按照服務(wù)驅(qū)動(dòng)設(shè)計(jì)獲得領(lǐng)域設(shè)計(jì)模型。 |