課程簡(jiǎn)介
本課程首先深入剖析軟件質(zhì)量下降的根源,提出重構(gòu)是軟件變更中保持高質(zhì)量與代碼整潔的必然道路。緊接著,課程深刻的解析了什么是高質(zhì)量代碼,以及高質(zhì)量代碼給我們帶來(lái)的幫助是什么。在此基礎(chǔ)上,通過(guò)一系列實(shí)戰(zhàn)案例講解了,如何通過(guò)AI來(lái)完成軟件重構(gòu)、設(shè)計(jì)模式與領(lǐng)域驅(qū)動(dòng)等工作,快速而高效地實(shí)現(xiàn)代碼整潔。
目標(biāo)收益
培訓(xùn)對(duì)象
課程大綱
第一單元 剖析軟件退化的根源 |
軟件開(kāi)發(fā)的輪回: 1. 起初客戶提出的需求并不復(fù)雜 2. 隨著日后的變更,系統(tǒng)開(kāi)始變得越來(lái)越復(fù)雜 3. 激烈的市場(chǎng)要求快速交付 4. 越來(lái)越復(fù)雜的系統(tǒng)交付速度會(huì)越來(lái)越慢 5. 越來(lái)越快的技術(shù)發(fā)展要求技術(shù)架構(gòu)不斷更迭 帶來(lái)的問(wèn)題: 1. 系統(tǒng)交付速度越來(lái)越慢而不能適應(yīng)市場(chǎng)變化 2. 技術(shù)架構(gòu)不斷更迭越來(lái)越困難而不能適應(yīng)技術(shù)發(fā)展 3. 測(cè)試變得越來(lái)越困難而任務(wù)繁重 4. 軟件系統(tǒng)越來(lái)越笨重而不適應(yīng)未來(lái)變化 分析與反思 探討軟件退化的根源 案例分析:演示電商網(wǎng)站付款功能代碼質(zhì)量下降的過(guò)程 1. 起初的設(shè)計(jì) 2. 隨后的變更 3. 質(zhì)量不斷下降的過(guò)程 軟件質(zhì)量下降的根源: 1. 軟件總是因變更而變得越來(lái)越復(fù)雜 2. 軟件結(jié)構(gòu)已經(jīng)不再適應(yīng)復(fù)雜的軟件需求 3. 必須要調(diào)整軟件結(jié)構(gòu)以適應(yīng)新的軟件需求 4. 重構(gòu)是保持高質(zhì)量軟件設(shè)計(jì)的習(xí)慣 兩頂帽子的設(shè)計(jì)方式 軟件是因需求變更而質(zhì)量下降嗎? 案例分析:推演軟件變更的設(shè)計(jì)過(guò)程 應(yīng)對(duì)軟件變更的最佳方式:兩頂帽子 1. 重構(gòu)原有代碼以適應(yīng)新的需求 2. 實(shí)現(xiàn)新的需求 案例:演示兩頂帽子的設(shè)計(jì)過(guò)程 |
第二單元 高質(zhì)量的軟件設(shè)計(jì) |
準(zhǔn)確理解高質(zhì)量代碼 1. 剖析高質(zhì)量代碼設(shè)計(jì)的本質(zhì) 2. 軟件的質(zhì)量保證:內(nèi)部質(zhì)量與外部質(zhì)量 3. 高質(zhì)量軟件設(shè)計(jì)的標(biāo)準(zhǔn):易于閱讀、易于維護(hù)、易于變更 準(zhǔn)確理解代碼整潔之道 1. 什么時(shí)候應(yīng)該代碼整潔 2. 函數(shù)代碼整潔應(yīng)當(dāng)遵循的原則 3. 類(lèi)與接口代碼整潔應(yīng)當(dāng)遵循的原則 4. 注釋代碼的整潔之道 5. 異常處理的代碼整潔之道 案例:實(shí)戰(zhàn)項(xiàng)目的整潔代碼展示 案例分析軟件設(shè)計(jì)原則及其本質(zhì) 1. 低耦合 1) 依賴反轉(zhuǎn)原則(DIP) 案例:購(gòu)票業(yè)務(wù)類(lèi)與數(shù)據(jù)訪問(wèn)類(lèi) 2) 開(kāi)放-封閉原則(OCP) 案例:需求變更與可擴(kuò)展點(diǎn)設(shè)計(jì) 案例:Square/Circle的解決方案 2. 高內(nèi)聚 1) 單一職責(zé)原則(SRP) 案例:財(cái)務(wù)憑證變更帶來(lái)的問(wèn)題 案例:超級(jí)大函數(shù)與大對(duì)象的難題 案例:MySQL讀寫(xiě)分離的改造過(guò)程 2) 不要重復(fù)自己原則(DRY) 典型的代碼重復(fù)案例與散彈式修改 探討代碼復(fù)用的設(shè)計(jì)難題與軟件重構(gòu) 案例講解:代碼復(fù)用的常用方法 基于AI編程的高質(zhì)量開(kāi)發(fā) 1.國(guó)產(chǎn)智能大模型DeepSeek的13個(gè)應(yīng)用場(chǎng)景: 代碼改寫(xiě)、代碼解釋、代碼生成、中英文翻譯,等等 2.智能大模型核心應(yīng)用的精華: 提示詞工程、文檔上傳、搭建本地知識(shí)庫(kù) 3.AI自動(dòng)化編程帶來(lái)的挑戰(zhàn): 1)不能交給AI過(guò)于復(fù)雜的任務(wù) 2)AI編寫(xiě)的代碼如何規(guī)范編程,基于某個(gè)平臺(tái)進(jìn)行編程 3)AI編寫(xiě)的代碼,日后如何變更維護(hù) 解決方案:通過(guò)知識(shí)庫(kù)制定規(guī)范指導(dǎo)AI編程 1.通過(guò)知識(shí)庫(kù)制定AI軟件開(kāi)發(fā)的模板與規(guī)范: 1)文檔模板:架構(gòu)設(shè)計(jì)的模板、用例模型的模板、領(lǐng)域模型的模板 2)開(kāi)發(fā)規(guī)范:領(lǐng)域?qū)ο?、服?wù)接口、DSL配置、測(cè)試用例的開(kāi)發(fā)規(guī)范 2.基于知識(shí)庫(kù)進(jìn)行的AI軟件開(kāi)發(fā): 1)基于業(yè)務(wù)需求進(jìn)行分析設(shè)計(jì) 2)將大任務(wù)拆分成無(wú)數(shù)個(gè)小任務(wù) 3)基于知識(shí)庫(kù)的規(guī)范進(jìn)行AI編程 4)基于知識(shí)庫(kù)的規(guī)范AI編寫(xiě)測(cè)試用例 |
第三單元 軟件重構(gòu)與設(shè)計(jì)模式 |
重構(gòu)是高質(zhì)量編碼的實(shí)現(xiàn)方式 1. 重構(gòu)是代碼整潔與高質(zhì)量編碼的實(shí)現(xiàn)方式 1) 準(zhǔn)確理解軟件重構(gòu) 2) 每次變更的時(shí)候,先重構(gòu)再實(shí)現(xiàn)需求 3) 每過(guò)一段時(shí)間就通過(guò)重構(gòu)整理一次代碼 2. 基于AI的軟件重構(gòu)思路 1)用AI進(jìn)行原始代碼的理解 2)用AI進(jìn)行代碼的改寫(xiě)與優(yōu)化 3)用AI編寫(xiě)測(cè)試用例 3. 案例:演練Hello World的維護(hù)變更過(guò)程 1) 最初的軟件設(shè)計(jì) 2) 第一次變更:抽取方法與抽取類(lèi) 3) 第二次變更:抽取接口與系統(tǒng)分層 4)重構(gòu)完成以后,用測(cè)試用例進(jìn)行驗(yàn)證 設(shè)計(jì)模式在高質(zhì)量編碼的應(yīng)用 1. 設(shè)計(jì)模式是學(xué)習(xí)高質(zhì)量編碼的捷徑 2. 學(xué)習(xí)設(shè)計(jì)模式的關(guān)鍵:設(shè)計(jì)動(dòng)機(jī) 什么是適配器模式 1. 軟件設(shè)計(jì)中外部接口的難題 2. 第三方框架帶來(lái)的設(shè)計(jì)難題 3. 適配器模式及其概念 4. 實(shí)戰(zhàn)演練AI的設(shè)計(jì)編碼 適配器模式的應(yīng)用 1. 適配器模式解決第三方框架帶來(lái)的難題 案例:Hibernate適配器的設(shè)計(jì) 2. 適配器模式解決外部接口的設(shè)計(jì)難題 案例:第三方支付接口的設(shè)計(jì) 案例:財(cái)務(wù)數(shù)據(jù)接口的設(shè)計(jì) 什么是策略模式 1. 工資發(fā)放功能遇到的難題 1) 工資發(fā)放功能最初的設(shè)計(jì)及其問(wèn)題 2) 對(duì)問(wèn)題的分析過(guò)程及其新的設(shè)計(jì)思路 2. 策略模式及其概念 3. 實(shí)戰(zhàn)演練AI的設(shè)計(jì)編碼 策略模式的應(yīng)用 1. 案例:工資發(fā)放功能設(shè)計(jì)改進(jìn)的過(guò)程 1) 工資發(fā)放功能的Java實(shí)現(xiàn) 2) 工資發(fā)放功能的C++實(shí)現(xiàn) 2. 案例:折扣功能的設(shè)計(jì)實(shí)現(xiàn) 1) 深入理解開(kāi)放-封閉原則 2) 折扣功能的變更與改進(jìn)過(guò)程 什么是工廠模式 探討軟件設(shè)計(jì)中遇到的難題 1. 依賴反轉(zhuǎn)原則的設(shè)計(jì)難題 2. 開(kāi)放-封閉原則的設(shè)計(jì)難題 3. 探討工廠模式的本質(zhì) 簡(jiǎn)單工廠模式的設(shè)計(jì)實(shí)現(xiàn) 1. 簡(jiǎn)單工廠模式的C++實(shí)現(xiàn) 2. 基于配置的簡(jiǎn)單工廠模式 3. 剖析簡(jiǎn)單工廠如何實(shí)現(xiàn)依賴反轉(zhuǎn)原則 案例:剖析Spring的beanFactory 4. 解讀工廠模式對(duì)設(shè)計(jì)的重大意義 5. 講解如何創(chuàng)建一個(gè)工廠 1) 創(chuàng)建工廠的步驟與關(guān)鍵點(diǎn) 2) 利用Spring框架簡(jiǎn)化工廠類(lèi)的設(shè)計(jì) 6. 實(shí)戰(zhàn)演練用AI設(shè)計(jì)一個(gè)工廠 什么是裝飾者模式 1. 業(yè)務(wù)量增長(zhǎng)帶來(lái)的多數(shù)據(jù)源問(wèn)題 2. 運(yùn)用裝飾者模式巧妙解決多數(shù)據(jù)源問(wèn)題 3. 裝飾者模式及其概念 4. 實(shí)戰(zhàn)演練用AI進(jìn)行設(shè)計(jì)變更 裝飾者模式的應(yīng)用 案例:多數(shù)據(jù)源的設(shè)計(jì)實(shí)現(xiàn) 1. 多數(shù)據(jù)源問(wèn)題的分析設(shè)計(jì)過(guò)程 2. 多數(shù)據(jù)源的設(shè)計(jì)與實(shí)現(xiàn) 案例:商城收銀系統(tǒng)的設(shè)計(jì)變更過(guò)程 1. 商城收銀系統(tǒng)期初的設(shè)計(jì) 2. 混合策略的設(shè)計(jì)與實(shí)現(xiàn) 3. 多層裝飾者的設(shè)計(jì)與實(shí)現(xiàn) 什么是橋接模式 1. 對(duì)象繼承的泛濫 2. 橋接模式及其概念 3. 實(shí)戰(zhàn)演練用AI進(jìn)行設(shè)計(jì)變更 橋接模式的應(yīng)用 案例:?jiǎn)T工管理與工資發(fā)放的設(shè)計(jì) 1. 員工管理與工資發(fā)放帶來(lái)的繼承泛濫問(wèn)題 2. 采用橋接模式的設(shè)計(jì)與實(shí)現(xiàn) 案例:查詢支持類(lèi)的設(shè)計(jì) 1. 查詢支持類(lèi)遭遇的繼承泛濫問(wèn)題 2. 查詢支持類(lèi)的解決方案 3. 單例模式下查詢支持類(lèi)的設(shè)計(jì) 深入體會(huì)單一職責(zé)原則 |
第四單元 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) |
DDD是應(yīng)對(duì)軟件復(fù)雜性之道 1. 剖析領(lǐng)域驅(qū)動(dòng)的設(shè)計(jì)思想 2. 服務(wù)、實(shí)體與值對(duì)象的概念 3. 充血模型與貧血模型的設(shè)計(jì)思路 4. 問(wèn)題域、子域與限界上下文劃分 基于領(lǐng)域模型的設(shè)計(jì)變更 1. 演練基于DDD的設(shè)計(jì)與變更過(guò)程 2. 演練領(lǐng)域模型如何指導(dǎo)數(shù)據(jù)庫(kù)設(shè)計(jì) 3. 演練領(lǐng)域模型如何指導(dǎo)程序設(shè)計(jì) 4. 聚合、倉(cāng)庫(kù)與工廠:傻傻分不清 5. 限界上下文:系統(tǒng)拆分的利器 以DDD作為規(guī)范指導(dǎo)AI編程 1.通過(guò)知識(shí)庫(kù)制定AI軟件開(kāi)發(fā)的模板與規(guī)范: 1)文檔模板:架構(gòu)設(shè)計(jì)的模板、用例模型的模板、領(lǐng)域模型的模板 2)開(kāi)發(fā)規(guī)范:領(lǐng)域?qū)ο?、服?wù)接口、DSL配置、測(cè)試用例的開(kāi)發(fā)規(guī)范 2.基于知識(shí)庫(kù)進(jìn)行的AI軟件開(kāi)發(fā): 1)AI輔助的軟件需求探索與編寫(xiě)需求文檔 2)AI輔助編寫(xiě)用例模型 3)AI輔助編寫(xiě)領(lǐng)域模型 4)AI輔助形成數(shù)據(jù)庫(kù)設(shè)計(jì),編寫(xiě)SQL腳本 5)AI輔助編寫(xiě)領(lǐng)域?qū)ο笈c服務(wù)接口代碼,進(jìn)行DSL配置 6)AI輔助,基于某個(gè)平臺(tái)進(jìn)行業(yè)務(wù)代碼的編寫(xiě) 7)AI輔助創(chuàng)建測(cè)試用例代碼 DDD軟件開(kāi)發(fā)的實(shí)戰(zhàn)演練 實(shí)戰(zhàn)演練:咖啡自動(dòng)販賣(mài)機(jī)的設(shè)計(jì)變更過(guò)程 最初的設(shè)計(jì):基于DDD的開(kāi)發(fā) 1. 系統(tǒng)業(yè)務(wù)規(guī)劃與領(lǐng)域驅(qū)動(dòng)戰(zhàn)略設(shè)計(jì) 2. 子系統(tǒng)→限界上下文→功能模塊劃分 3. 動(dòng)態(tài):需求分析與用例模型 1) 由粗到細(xì)的用例模型分析 2) 業(yè)務(wù)流程分析與用例描述 4. 靜態(tài)各子域業(yè)務(wù)領(lǐng)域建模 1) 業(yè)務(wù)討論過(guò)程中的領(lǐng)域建模 2) 運(yùn)用原文分析法的領(lǐng)域建模 3) 運(yùn)用事件風(fēng)暴法的領(lǐng)域建模 5. 各子域的接口設(shè)計(jì) 1) 上下文地圖的模型分析 2) 模塊間接口的方案設(shè)計(jì) 第一次變更:業(yè)務(wù)需求的變更 1. 用例模型的變更 2. 回到領(lǐng)域模型進(jìn)行變更的分析與設(shè)計(jì) 3. 基于領(lǐng)域模型指導(dǎo)程序變更 第二次變更:技術(shù)的變更 1. 通過(guò)領(lǐng)域模型分析,業(yè)務(wù)沒(méi)有調(diào)整 2. 上層業(yè)務(wù)代碼不動(dòng),底層技術(shù)架構(gòu)調(diào)整 第三次變更:向云+端的轉(zhuǎn)型 1. 基于業(yè)務(wù)進(jìn)行用例模型的需求整理 2. 基于業(yè)務(wù)進(jìn)行領(lǐng)域模型的分析規(guī)劃 3. 基于領(lǐng)域模型進(jìn)行現(xiàn)有系統(tǒng)的改造 |
第一單元 剖析軟件退化的根源 軟件開(kāi)發(fā)的輪回: 1. 起初客戶提出的需求并不復(fù)雜 2. 隨著日后的變更,系統(tǒng)開(kāi)始變得越來(lái)越復(fù)雜 3. 激烈的市場(chǎng)要求快速交付 4. 越來(lái)越復(fù)雜的系統(tǒng)交付速度會(huì)越來(lái)越慢 5. 越來(lái)越快的技術(shù)發(fā)展要求技術(shù)架構(gòu)不斷更迭 帶來(lái)的問(wèn)題: 1. 系統(tǒng)交付速度越來(lái)越慢而不能適應(yīng)市場(chǎng)變化 2. 技術(shù)架構(gòu)不斷更迭越來(lái)越困難而不能適應(yīng)技術(shù)發(fā)展 3. 測(cè)試變得越來(lái)越困難而任務(wù)繁重 4. 軟件系統(tǒng)越來(lái)越笨重而不適應(yīng)未來(lái)變化 分析與反思 探討軟件退化的根源 案例分析:演示電商網(wǎng)站付款功能代碼質(zhì)量下降的過(guò)程 1. 起初的設(shè)計(jì) 2. 隨后的變更 3. 質(zhì)量不斷下降的過(guò)程 軟件質(zhì)量下降的根源: 1. 軟件總是因變更而變得越來(lái)越復(fù)雜 2. 軟件結(jié)構(gòu)已經(jīng)不再適應(yīng)復(fù)雜的軟件需求 3. 必須要調(diào)整軟件結(jié)構(gòu)以適應(yīng)新的軟件需求 4. 重構(gòu)是保持高質(zhì)量軟件設(shè)計(jì)的習(xí)慣 兩頂帽子的設(shè)計(jì)方式 軟件是因需求變更而質(zhì)量下降嗎? 案例分析:推演軟件變更的設(shè)計(jì)過(guò)程 應(yīng)對(duì)軟件變更的最佳方式:兩頂帽子 1. 重構(gòu)原有代碼以適應(yīng)新的需求 2. 實(shí)現(xiàn)新的需求 案例:演示兩頂帽子的設(shè)計(jì)過(guò)程 |
第二單元 高質(zhì)量的軟件設(shè)計(jì) 準(zhǔn)確理解高質(zhì)量代碼 1. 剖析高質(zhì)量代碼設(shè)計(jì)的本質(zhì) 2. 軟件的質(zhì)量保證:內(nèi)部質(zhì)量與外部質(zhì)量 3. 高質(zhì)量軟件設(shè)計(jì)的標(biāo)準(zhǔn):易于閱讀、易于維護(hù)、易于變更 準(zhǔn)確理解代碼整潔之道 1. 什么時(shí)候應(yīng)該代碼整潔 2. 函數(shù)代碼整潔應(yīng)當(dāng)遵循的原則 3. 類(lèi)與接口代碼整潔應(yīng)當(dāng)遵循的原則 4. 注釋代碼的整潔之道 5. 異常處理的代碼整潔之道 案例:實(shí)戰(zhàn)項(xiàng)目的整潔代碼展示 案例分析軟件設(shè)計(jì)原則及其本質(zhì) 1. 低耦合 1) 依賴反轉(zhuǎn)原則(DIP) 案例:購(gòu)票業(yè)務(wù)類(lèi)與數(shù)據(jù)訪問(wèn)類(lèi) 2) 開(kāi)放-封閉原則(OCP) 案例:需求變更與可擴(kuò)展點(diǎn)設(shè)計(jì) 案例:Square/Circle的解決方案 2. 高內(nèi)聚 1) 單一職責(zé)原則(SRP) 案例:財(cái)務(wù)憑證變更帶來(lái)的問(wèn)題 案例:超級(jí)大函數(shù)與大對(duì)象的難題 案例:MySQL讀寫(xiě)分離的改造過(guò)程 2) 不要重復(fù)自己原則(DRY) 典型的代碼重復(fù)案例與散彈式修改 探討代碼復(fù)用的設(shè)計(jì)難題與軟件重構(gòu) 案例講解:代碼復(fù)用的常用方法 基于AI編程的高質(zhì)量開(kāi)發(fā) 1.國(guó)產(chǎn)智能大模型DeepSeek的13個(gè)應(yīng)用場(chǎng)景: 代碼改寫(xiě)、代碼解釋、代碼生成、中英文翻譯,等等 2.智能大模型核心應(yīng)用的精華: 提示詞工程、文檔上傳、搭建本地知識(shí)庫(kù) 3.AI自動(dòng)化編程帶來(lái)的挑戰(zhàn): 1)不能交給AI過(guò)于復(fù)雜的任務(wù) 2)AI編寫(xiě)的代碼如何規(guī)范編程,基于某個(gè)平臺(tái)進(jìn)行編程 3)AI編寫(xiě)的代碼,日后如何變更維護(hù) 解決方案:通過(guò)知識(shí)庫(kù)制定規(guī)范指導(dǎo)AI編程 1.通過(guò)知識(shí)庫(kù)制定AI軟件開(kāi)發(fā)的模板與規(guī)范: 1)文檔模板:架構(gòu)設(shè)計(jì)的模板、用例模型的模板、領(lǐng)域模型的模板 2)開(kāi)發(fā)規(guī)范:領(lǐng)域?qū)ο蟆⒎?wù)接口、DSL配置、測(cè)試用例的開(kāi)發(fā)規(guī)范 2.基于知識(shí)庫(kù)進(jìn)行的AI軟件開(kāi)發(fā): 1)基于業(yè)務(wù)需求進(jìn)行分析設(shè)計(jì) 2)將大任務(wù)拆分成無(wú)數(shù)個(gè)小任務(wù) 3)基于知識(shí)庫(kù)的規(guī)范進(jìn)行AI編程 4)基于知識(shí)庫(kù)的規(guī)范AI編寫(xiě)測(cè)試用例 |
第三單元 軟件重構(gòu)與設(shè)計(jì)模式 重構(gòu)是高質(zhì)量編碼的實(shí)現(xiàn)方式 1. 重構(gòu)是代碼整潔與高質(zhì)量編碼的實(shí)現(xiàn)方式 1) 準(zhǔn)確理解軟件重構(gòu) 2) 每次變更的時(shí)候,先重構(gòu)再實(shí)現(xiàn)需求 3) 每過(guò)一段時(shí)間就通過(guò)重構(gòu)整理一次代碼 2. 基于AI的軟件重構(gòu)思路 1)用AI進(jìn)行原始代碼的理解 2)用AI進(jìn)行代碼的改寫(xiě)與優(yōu)化 3)用AI編寫(xiě)測(cè)試用例 3. 案例:演練Hello World的維護(hù)變更過(guò)程 1) 最初的軟件設(shè)計(jì) 2) 第一次變更:抽取方法與抽取類(lèi) 3) 第二次變更:抽取接口與系統(tǒng)分層 4)重構(gòu)完成以后,用測(cè)試用例進(jìn)行驗(yàn)證 設(shè)計(jì)模式在高質(zhì)量編碼的應(yīng)用 1. 設(shè)計(jì)模式是學(xué)習(xí)高質(zhì)量編碼的捷徑 2. 學(xué)習(xí)設(shè)計(jì)模式的關(guān)鍵:設(shè)計(jì)動(dòng)機(jī) 什么是適配器模式 1. 軟件設(shè)計(jì)中外部接口的難題 2. 第三方框架帶來(lái)的設(shè)計(jì)難題 3. 適配器模式及其概念 4. 實(shí)戰(zhàn)演練AI的設(shè)計(jì)編碼 適配器模式的應(yīng)用 1. 適配器模式解決第三方框架帶來(lái)的難題 案例:Hibernate適配器的設(shè)計(jì) 2. 適配器模式解決外部接口的設(shè)計(jì)難題 案例:第三方支付接口的設(shè)計(jì) 案例:財(cái)務(wù)數(shù)據(jù)接口的設(shè)計(jì) 什么是策略模式 1. 工資發(fā)放功能遇到的難題 1) 工資發(fā)放功能最初的設(shè)計(jì)及其問(wèn)題 2) 對(duì)問(wèn)題的分析過(guò)程及其新的設(shè)計(jì)思路 2. 策略模式及其概念 3. 實(shí)戰(zhàn)演練AI的設(shè)計(jì)編碼 策略模式的應(yīng)用 1. 案例:工資發(fā)放功能設(shè)計(jì)改進(jìn)的過(guò)程 1) 工資發(fā)放功能的Java實(shí)現(xiàn) 2) 工資發(fā)放功能的C++實(shí)現(xiàn) 2. 案例:折扣功能的設(shè)計(jì)實(shí)現(xiàn) 1) 深入理解開(kāi)放-封閉原則 2) 折扣功能的變更與改進(jìn)過(guò)程 什么是工廠模式 探討軟件設(shè)計(jì)中遇到的難題 1. 依賴反轉(zhuǎn)原則的設(shè)計(jì)難題 2. 開(kāi)放-封閉原則的設(shè)計(jì)難題 3. 探討工廠模式的本質(zhì) 簡(jiǎn)單工廠模式的設(shè)計(jì)實(shí)現(xiàn) 1. 簡(jiǎn)單工廠模式的C++實(shí)現(xiàn) 2. 基于配置的簡(jiǎn)單工廠模式 3. 剖析簡(jiǎn)單工廠如何實(shí)現(xiàn)依賴反轉(zhuǎn)原則 案例:剖析Spring的beanFactory 4. 解讀工廠模式對(duì)設(shè)計(jì)的重大意義 5. 講解如何創(chuàng)建一個(gè)工廠 1) 創(chuàng)建工廠的步驟與關(guān)鍵點(diǎn) 2) 利用Spring框架簡(jiǎn)化工廠類(lèi)的設(shè)計(jì) 6. 實(shí)戰(zhàn)演練用AI設(shè)計(jì)一個(gè)工廠 什么是裝飾者模式 1. 業(yè)務(wù)量增長(zhǎng)帶來(lái)的多數(shù)據(jù)源問(wèn)題 2. 運(yùn)用裝飾者模式巧妙解決多數(shù)據(jù)源問(wèn)題 3. 裝飾者模式及其概念 4. 實(shí)戰(zhàn)演練用AI進(jìn)行設(shè)計(jì)變更 裝飾者模式的應(yīng)用 案例:多數(shù)據(jù)源的設(shè)計(jì)實(shí)現(xiàn) 1. 多數(shù)據(jù)源問(wèn)題的分析設(shè)計(jì)過(guò)程 2. 多數(shù)據(jù)源的設(shè)計(jì)與實(shí)現(xiàn) 案例:商城收銀系統(tǒng)的設(shè)計(jì)變更過(guò)程 1. 商城收銀系統(tǒng)期初的設(shè)計(jì) 2. 混合策略的設(shè)計(jì)與實(shí)現(xiàn) 3. 多層裝飾者的設(shè)計(jì)與實(shí)現(xiàn) 什么是橋接模式 1. 對(duì)象繼承的泛濫 2. 橋接模式及其概念 3. 實(shí)戰(zhàn)演練用AI進(jìn)行設(shè)計(jì)變更 橋接模式的應(yīng)用 案例:?jiǎn)T工管理與工資發(fā)放的設(shè)計(jì) 1. 員工管理與工資發(fā)放帶來(lái)的繼承泛濫問(wèn)題 2. 采用橋接模式的設(shè)計(jì)與實(shí)現(xiàn) 案例:查詢支持類(lèi)的設(shè)計(jì) 1. 查詢支持類(lèi)遭遇的繼承泛濫問(wèn)題 2. 查詢支持類(lèi)的解決方案 3. 單例模式下查詢支持類(lèi)的設(shè)計(jì) 深入體會(huì)單一職責(zé)原則 |
第四單元 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) DDD是應(yīng)對(duì)軟件復(fù)雜性之道 1. 剖析領(lǐng)域驅(qū)動(dòng)的設(shè)計(jì)思想 2. 服務(wù)、實(shí)體與值對(duì)象的概念 3. 充血模型與貧血模型的設(shè)計(jì)思路 4. 問(wèn)題域、子域與限界上下文劃分 基于領(lǐng)域模型的設(shè)計(jì)變更 1. 演練基于DDD的設(shè)計(jì)與變更過(guò)程 2. 演練領(lǐng)域模型如何指導(dǎo)數(shù)據(jù)庫(kù)設(shè)計(jì) 3. 演練領(lǐng)域模型如何指導(dǎo)程序設(shè)計(jì) 4. 聚合、倉(cāng)庫(kù)與工廠:傻傻分不清 5. 限界上下文:系統(tǒng)拆分的利器 以DDD作為規(guī)范指導(dǎo)AI編程 1.通過(guò)知識(shí)庫(kù)制定AI軟件開(kāi)發(fā)的模板與規(guī)范: 1)文檔模板:架構(gòu)設(shè)計(jì)的模板、用例模型的模板、領(lǐng)域模型的模板 2)開(kāi)發(fā)規(guī)范:領(lǐng)域?qū)ο蟆⒎?wù)接口、DSL配置、測(cè)試用例的開(kāi)發(fā)規(guī)范 2.基于知識(shí)庫(kù)進(jìn)行的AI軟件開(kāi)發(fā): 1)AI輔助的軟件需求探索與編寫(xiě)需求文檔 2)AI輔助編寫(xiě)用例模型 3)AI輔助編寫(xiě)領(lǐng)域模型 4)AI輔助形成數(shù)據(jù)庫(kù)設(shè)計(jì),編寫(xiě)SQL腳本 5)AI輔助編寫(xiě)領(lǐng)域?qū)ο笈c服務(wù)接口代碼,進(jìn)行DSL配置 6)AI輔助,基于某個(gè)平臺(tái)進(jìn)行業(yè)務(wù)代碼的編寫(xiě) 7)AI輔助創(chuàng)建測(cè)試用例代碼 DDD軟件開(kāi)發(fā)的實(shí)戰(zhàn)演練 實(shí)戰(zhàn)演練:咖啡自動(dòng)販賣(mài)機(jī)的設(shè)計(jì)變更過(guò)程 最初的設(shè)計(jì):基于DDD的開(kāi)發(fā) 1. 系統(tǒng)業(yè)務(wù)規(guī)劃與領(lǐng)域驅(qū)動(dòng)戰(zhàn)略設(shè)計(jì) 2. 子系統(tǒng)→限界上下文→功能模塊劃分 3. 動(dòng)態(tài):需求分析與用例模型 1) 由粗到細(xì)的用例模型分析 2) 業(yè)務(wù)流程分析與用例描述 4. 靜態(tài)各子域業(yè)務(wù)領(lǐng)域建模 1) 業(yè)務(wù)討論過(guò)程中的領(lǐng)域建模 2) 運(yùn)用原文分析法的領(lǐng)域建模 3) 運(yùn)用事件風(fēng)暴法的領(lǐng)域建模 5. 各子域的接口設(shè)計(jì) 1) 上下文地圖的模型分析 2) 模塊間接口的方案設(shè)計(jì) 第一次變更:業(yè)務(wù)需求的變更 1. 用例模型的變更 2. 回到領(lǐng)域模型進(jìn)行變更的分析與設(shè)計(jì) 3. 基于領(lǐng)域模型指導(dǎo)程序變更 第二次變更:技術(shù)的變更 1. 通過(guò)領(lǐng)域模型分析,業(yè)務(wù)沒(méi)有調(diào)整 2. 上層業(yè)務(wù)代碼不動(dòng),底層技術(shù)架構(gòu)調(diào)整 第三次變更:向云+端的轉(zhuǎn)型 1. 基于業(yè)務(wù)進(jìn)行用例模型的需求整理 2. 基于業(yè)務(wù)進(jìn)行領(lǐng)域模型的分析規(guī)劃 3. 基于領(lǐng)域模型進(jìn)行現(xiàn)有系統(tǒng)的改造 |