課程簡介
本課程基于多年實踐領(lǐng)域驅(qū)動設(shè)計的經(jīng)驗與心得,糅合了 DDD 社區(qū)最新發(fā)展的理論知識與最佳實踐,覆蓋從需求到實現(xiàn)全面系統(tǒng)的講解領(lǐng)域驅(qū)動設(shè)計。本篇是方法論篇,
目標(biāo)收益
學(xué)員通過課程,可以深入學(xué)習(xí)到企業(yè)級N層的框架實現(xiàn)原理。每一層的職責(zé)以及功能目標(biāo),DDD中的核心戰(zhàn)術(shù)概念及工具,比如:領(lǐng)域服務(wù),領(lǐng)域事件,資源庫,聚合,實體,值對象。以及DDD的戰(zhàn)略建模工具,如:界限上下文,上下文映射圖。以及對于以上這些概念,在代碼層面的設(shè)計于實現(xiàn)。
培訓(xùn)對象
具有以下經(jīng)驗的 架構(gòu)師,后端開發(fā)工程師,以及其他軟件從業(yè)人員
具有基礎(chǔ)的架構(gòu)設(shè)計知識
至少掌握一門面向?qū)ο笳Z言
具有基本的面向?qū)ο蟪绦蛟O(shè)計能力
具有一年或一年以上的業(yè)務(wù)系統(tǒng)開發(fā)經(jīng)驗
課程大綱
一、軟件復(fù)雜度 - 軟件行業(yè)的主要任務(wù)就是對應(yīng)復(fù)雜度 |
1.領(lǐng)域驅(qū)動設(shè)計概覽 2.戰(zhàn)略與戰(zhàn)術(shù) 3.戰(zhàn)略層面的三件事 與 戰(zhàn)術(shù)層面的核心結(jié)構(gòu) 4.軟件復(fù)雜度的三個成因 5.分離關(guān)注點(diǎn) – Unix 設(shè)計哲學(xué) 6.隔離業(yè)務(wù)復(fù)雜度與技術(shù)復(fù)雜度 7.復(fù)雜度的橫切與縱切 8.SOLID原則 9.SRP – 單一職責(zé)原則 10.OCP – 開放封閉原則 11.LSP – 里氏替換原則 12.ISP – 接口隔離原則 13.DIP – 依賴倒置原則 14.領(lǐng)域驅(qū)動設(shè)計對軟件復(fù)雜度的對應(yīng) |
二、通用語言 - 工欲善其事必先利其器 |
1.領(lǐng)域?qū)<遗c開發(fā)者的溝通失調(diào) 2.通用語言關(guān)鍵點(diǎn) - 5W2H1E 3.通用語言關(guān)鍵點(diǎn)擴(kuò)展 - Pre/Post Condition 4.案例 - “高端客戶優(yōu)惠”這個需求如何做? 5.通用語言的價值 6.通用語言的代碼表達(dá) 7.運(yùn)用領(lǐng)域場景分析提煉領(lǐng)域知識 8.建立統(tǒng)一語言 |
三、界限上下文 – 有問題必有解決方案 |
1.界限上下文的目的:消除歧義 2.界限上下文與通用語言 3.案例:銀行賬戶在不同上下文的分析與隔離 4.不要將有二義性的領(lǐng)域概念放在同一界限上下文中 5.理解界限上下文 6.識別界限上下文 7.理解上下文映射 8.上下文映射的團(tuán)隊協(xié)作模式 9.上下文映射的通信集成模式 辯別限界上下文的協(xié)作關(guān)系 |
四、架構(gòu) – 總有一款適合你 |
1.認(rèn)識分層架構(gòu) 2.分層架構(gòu)的演化 3.領(lǐng)域驅(qū)動架構(gòu)的演進(jìn) 4.界限上下文與架構(gòu) 5.六邊形架構(gòu) 6.端口與適配器 7.整潔架構(gòu) 8.CQRS架構(gòu) 9.在CQRS中處理具有最終一致性的查詢模型 10.事件溯源 Event Souring 11.使用樂觀鎖處理并發(fā)更新 12.事件溯源和發(fā)布事件 13.冪等方式處理消息 14.使用快照提升性能 15.管道與過濾器 16.SAGA (消息驅(qū)動事務(wù)) 17.協(xié)同式與編排式 18.SAGA下實現(xiàn)隔離 |
一、軟件復(fù)雜度 - 軟件行業(yè)的主要任務(wù)就是對應(yīng)復(fù)雜度 1.領(lǐng)域驅(qū)動設(shè)計概覽 2.戰(zhàn)略與戰(zhàn)術(shù) 3.戰(zhàn)略層面的三件事 與 戰(zhàn)術(shù)層面的核心結(jié)構(gòu) 4.軟件復(fù)雜度的三個成因 5.分離關(guān)注點(diǎn) – Unix 設(shè)計哲學(xué) 6.隔離業(yè)務(wù)復(fù)雜度與技術(shù)復(fù)雜度 7.復(fù)雜度的橫切與縱切 8.SOLID原則 9.SRP – 單一職責(zé)原則 10.OCP – 開放封閉原則 11.LSP – 里氏替換原則 12.ISP – 接口隔離原則 13.DIP – 依賴倒置原則 14.領(lǐng)域驅(qū)動設(shè)計對軟件復(fù)雜度的對應(yīng) |
二、通用語言 - 工欲善其事必先利其器 1.領(lǐng)域?qū)<遗c開發(fā)者的溝通失調(diào) 2.通用語言關(guān)鍵點(diǎn) - 5W2H1E 3.通用語言關(guān)鍵點(diǎn)擴(kuò)展 - Pre/Post Condition 4.案例 - “高端客戶優(yōu)惠”這個需求如何做? 5.通用語言的價值 6.通用語言的代碼表達(dá) 7.運(yùn)用領(lǐng)域場景分析提煉領(lǐng)域知識 8.建立統(tǒng)一語言 |
三、界限上下文 – 有問題必有解決方案 1.界限上下文的目的:消除歧義 2.界限上下文與通用語言 3.案例:銀行賬戶在不同上下文的分析與隔離 4.不要將有二義性的領(lǐng)域概念放在同一界限上下文中 5.理解界限上下文 6.識別界限上下文 7.理解上下文映射 8.上下文映射的團(tuán)隊協(xié)作模式 9.上下文映射的通信集成模式 辯別限界上下文的協(xié)作關(guān)系 |
四、架構(gòu) – 總有一款適合你 1.認(rèn)識分層架構(gòu) 2.分層架構(gòu)的演化 3.領(lǐng)域驅(qū)動架構(gòu)的演進(jìn) 4.界限上下文與架構(gòu) 5.六邊形架構(gòu) 6.端口與適配器 7.整潔架構(gòu) 8.CQRS架構(gòu) 9.在CQRS中處理具有最終一致性的查詢模型 10.事件溯源 Event Souring 11.使用樂觀鎖處理并發(fā)更新 12.事件溯源和發(fā)布事件 13.冪等方式處理消息 14.使用快照提升性能 15.管道與過濾器 16.SAGA (消息驅(qū)動事務(wù)) 17.協(xié)同式與編排式 18.SAGA下實現(xiàn)隔離 |