架構(gòu)師
其他
軟件重構(gòu)
自動(dòng)化測(cè)試
代碼整潔
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

基于AI編程的軟件重構(gòu) 實(shí)戰(zhàn)訓(xùn)練營

課程費(fèi)用

6800.00 /人

課程時(shí)長(zhǎng)

2

成為教練

課程簡(jiǎn)介

本課程首先深入剖析軟件質(zhì)量下降的根源,提出重構(gòu)是軟件變更中保持高質(zhì)量的必然,講解如何運(yùn)用“兩頂帽子”的方式應(yīng)對(duì)變更,拒絕腐化。接著,用真實(shí)案例講解已經(jīng)代碼腐化的遺留系統(tǒng)是如何通過“軟件重構(gòu)七步曲”,由簡(jiǎn)入深、循序漸進(jìn)地重構(gòu)一個(gè)大系統(tǒng)。演練在整個(gè)過程中,如何通過AI編程,更加快速而高效地優(yōu)化代碼、軟件重構(gòu)、建立自動(dòng)化測(cè)試,保持代碼整潔。

目標(biāo)收益

培訓(xùn)對(duì)象

課程大綱

第一單元 剖析軟件退化的根源 軟件開發(fā)的輪回:
1. 起初客戶提出的需求并不復(fù)雜
2. 隨著日后的變更,系統(tǒng)開始變得越來越復(fù)雜
3. 激烈的市場(chǎng)要求快速交付
4. 越來越復(fù)雜的系統(tǒng)交付速度會(huì)越來越慢
5. 越來越快的技術(shù)發(fā)展要求技術(shù)架構(gòu)不斷更迭
帶來的問題:
1. 系統(tǒng)交付速度越來越慢而不能適應(yīng)市場(chǎng)變化
2. 技術(shù)架構(gòu)不斷更迭越來越困難而不能適應(yīng)技術(shù)發(fā)展
3. 測(cè)試變得越來越困難而任務(wù)繁重
4. 軟件系統(tǒng)越來越笨重而不適應(yīng)未來變化
分析與反思
探討軟件退化的根源
案例分析:演示電商網(wǎng)站付款功能代碼質(zhì)量下降的過程
1. 起初的設(shè)計(jì)
2. 隨后的變更
3. 質(zhì)量不斷下降的過程
軟件質(zhì)量下降的根源:
1. 軟件總是因變更而變得越來越復(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ì)過程
應(yīng)對(duì)軟件變更的最佳方式:兩頂帽子
1. 重構(gòu)原有代碼以適應(yīng)新的需求
2. 實(shí)現(xiàn)新的需求
案例:演示兩頂帽子的設(shè)計(jì)過程
第二單元 高質(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. 類與接口代碼整潔應(yīng)當(dāng)遵循的原則
4. 注釋代碼的整潔之道
5. 異常處理的代碼整潔之道
案例:實(shí)戰(zhàn)項(xiàng)目的整潔代碼展示
案例分析軟件設(shè)計(jì)原則及其本質(zhì)
1. 低耦合
1) 依賴反轉(zhuǎn)原則(DIP)
案例:購票業(yè)務(wù)類與數(shù)據(jù)訪問類
2) 開放-封閉原則(OCP)
案例:需求變更與可擴(kuò)展點(diǎn)設(shè)計(jì)
案例:Square/Circle的解決方案
2. 高內(nèi)聚
1) 單一職責(zé)原則(SRP)
案例:財(cái)務(wù)憑證變更帶來的問題
案例:超級(jí)大函數(shù)與大對(duì)象的難題
案例:MySQL讀寫分離的改造過程
2) 不要重復(fù)自己原則(DRY)
典型的代碼重復(fù)案例與散彈式修改
探討代碼復(fù)用的設(shè)計(jì)難題與軟件重構(gòu)
案例講解:代碼復(fù)用的常用方法
基于AI編程的DDD落地實(shí)踐
1.國產(chǎn)智能大模型DeepSeek的13個(gè)應(yīng)用場(chǎng)景:
代碼改寫、代碼解釋、代碼生成、中英文翻譯,等等
2.智能大模型核心應(yīng)用的精華:
提示詞工程、文檔上傳、搭建本地知識(shí)庫
3.AI自動(dòng)化編程帶來的挑戰(zhàn):
1)不能交給AI過于復(fù)雜的任務(wù)
2)AI編寫的代碼如何規(guī)范編程,基于某個(gè)平臺(tái)進(jìn)行編程
3)AI編寫的代碼,日后如何變更維護(hù)
解決方案:以DDD作為規(guī)范指導(dǎo)AI編程
1.通過知識(shí)庫制定AI軟件開發(fā)的模板與規(guī)范:
1)文檔模板:架構(gòu)設(shè)計(jì)的模板、用例模型的模板、領(lǐng)域模型的模板
2)開發(fā)規(guī)范:領(lǐng)域?qū)ο?、服?wù)接口、DSL配置、測(cè)試用例的開發(fā)規(guī)范
2.基于知識(shí)庫進(jìn)行的AI軟件開發(fā):
1)基于業(yè)務(wù)需求進(jìn)行分析設(shè)計(jì)
2)將大任務(wù)拆分成無數(shù)個(gè)小任務(wù)
3)基于知識(shí)庫的規(guī)范進(jìn)行AI編程
4)基于知識(shí)庫的規(guī)范AI編寫測(cè)試用例
第三單元 基于AI的軟件重構(gòu) 軟件重構(gòu)的概念與設(shè)計(jì)思想
1. 重構(gòu)是一系列代碼的等量變換
案例:一個(gè)Hello World重構(gòu)過程
2. 重構(gòu)的保險(xiǎn)索:自動(dòng)化測(cè)試
案例:Hello World的自動(dòng)化測(cè)試過程
3. 軟件修改的四種動(dòng)機(jī)——重構(gòu)的價(jià)值
4. 一個(gè)真實(shí)的謊言——重構(gòu)的誤區(qū)
5. 重構(gòu)的主要方法與技巧
重構(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) 每過一段時(shí)間就通過重構(gòu)整理一次代碼
2. 基于AI的軟件重構(gòu)思路
1)用AI進(jìn)行原始代碼的理解
2)用AI進(jìn)行代碼的改寫與優(yōu)化
3)用AI編寫測(cè)試用例
3. 案例:演練Hello World的維護(hù)變更過程
1) 最初的軟件設(shè)計(jì)
2) 第一次變更:抽取方法與抽取類
3) 第二次變更:抽取接口與系統(tǒng)分層
4)重構(gòu)完成以后,用測(cè)試用例進(jìn)行驗(yàn)證
演練一個(gè)完整的重構(gòu)過程
案例分析:重構(gòu)一個(gè)大型遺留系統(tǒng)
1.重構(gòu)第一步:分解大函數(shù)
超級(jí)大函數(shù)及其危害
案例:演示大函數(shù)產(chǎn)生的過程
案例:演示抽取方法操作步驟
實(shí)踐抽取方法會(huì)遇到的問題和解決方案
演練AI編程在抽取方法中的應(yīng)用
2.重構(gòu)第二步:拆分大對(duì)象
超級(jí)大對(duì)象及其危害
案例:演示超級(jí)大對(duì)象的產(chǎn)生過程
案例:演示抽取類的操作步驟
講解單一職責(zé)設(shè)計(jì)原則
案例:演示“分久必合,合久必分”的重構(gòu)過程
演練AI編程在抽取類中的應(yīng)用
3.重構(gòu)第三步:提高復(fù)用率
講解順序編程及其危害
“不要重復(fù)代碼”原則
案例:提高代碼復(fù)用的6個(gè)方法
案例:演示新增代碼時(shí)的代碼復(fù)用過程
用靜態(tài)檢查工具檢查重復(fù)代碼
4.重構(gòu)第四步:可擴(kuò)展設(shè)計(jì)
過度設(shè)計(jì) vs. 恰如其分的設(shè)計(jì)
講解“開放-封閉”的設(shè)計(jì)原則
案例:講解可擴(kuò)展設(shè)計(jì)的4個(gè)方法
案例:講解新增代碼的可擴(kuò)展設(shè)計(jì)過程
5.重構(gòu)第五步:降低耦合度
案例:講解接口、實(shí)現(xiàn)與工廠模式
案例:講解外部接口解耦與適配器模式
演練用AI編程進(jìn)行設(shè)計(jì)模式的設(shè)計(jì)
6.重構(gòu)第六步:系統(tǒng)分層
反思軟件架構(gòu)需要怎樣的分層結(jié)構(gòu)
遺留系統(tǒng)如何擁抱需求變化
遺留系統(tǒng)如何應(yīng)對(duì)技術(shù)變革
7.重構(gòu)第七步:領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的概念
講解領(lǐng)域模型分析方法
演練一個(gè)完整的AI開發(fā)過程
1.通過知識(shí)庫制定AI軟件開發(fā)的模板與規(guī)范:
1)文檔模板:架構(gòu)設(shè)計(jì)的模板、用例模型的模板、領(lǐng)域模型的模板
2)開發(fā)規(guī)范:領(lǐng)域?qū)ο?、服?wù)接口、DSL配置、測(cè)試用例的開發(fā)規(guī)范
2.基于知識(shí)庫進(jìn)行的AI軟件開發(fā):
1)AI輔助的軟件需求探索與編寫需求文檔
2)AI輔助編寫用例模型
3)AI輔助編寫領(lǐng)域模型
4)AI輔助形成數(shù)據(jù)庫設(shè)計(jì),編寫SQL腳本
5)AI輔助編寫領(lǐng)域?qū)ο笈c服務(wù)接口代碼,進(jìn)行DSL配置
6)AI輔助,基于某個(gè)平臺(tái)進(jìn)行業(yè)務(wù)代碼的編寫
7)AI輔助創(chuàng)建測(cè)試用例代碼
第四單元 關(guān)于重構(gòu)的深度討論 什么時(shí)候重構(gòu)
1. 重構(gòu)是一種習(xí)慣
2. 重構(gòu)讓程序可讀
3. 重構(gòu),才好復(fù)用
4. 先重構(gòu),再擴(kuò)展
5. 緊急任務(wù)時(shí)的重構(gòu)
自動(dòng)化測(cè)試的困境
1. 重構(gòu)初期的困局
2. 解耦與自動(dòng)化測(cè)試
3. 建立自動(dòng)化測(cè)試體系
4. 通過AI建立自動(dòng)化測(cè)試體系
關(guān)于重構(gòu)效果的評(píng)價(jià)
1. 評(píng)價(jià)軟件質(zhì)量的指標(biāo)
2. 評(píng)價(jià)軟件質(zhì)量的工具
第一單元 剖析軟件退化的根源
軟件開發(fā)的輪回:
1. 起初客戶提出的需求并不復(fù)雜
2. 隨著日后的變更,系統(tǒng)開始變得越來越復(fù)雜
3. 激烈的市場(chǎng)要求快速交付
4. 越來越復(fù)雜的系統(tǒng)交付速度會(huì)越來越慢
5. 越來越快的技術(shù)發(fā)展要求技術(shù)架構(gòu)不斷更迭
帶來的問題:
1. 系統(tǒng)交付速度越來越慢而不能適應(yīng)市場(chǎng)變化
2. 技術(shù)架構(gòu)不斷更迭越來越困難而不能適應(yīng)技術(shù)發(fā)展
3. 測(cè)試變得越來越困難而任務(wù)繁重
4. 軟件系統(tǒng)越來越笨重而不適應(yīng)未來變化
分析與反思
探討軟件退化的根源
案例分析:演示電商網(wǎng)站付款功能代碼質(zhì)量下降的過程
1. 起初的設(shè)計(jì)
2. 隨后的變更
3. 質(zhì)量不斷下降的過程
軟件質(zhì)量下降的根源:
1. 軟件總是因變更而變得越來越復(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ì)過程
應(yīng)對(duì)軟件變更的最佳方式:兩頂帽子
1. 重構(gòu)原有代碼以適應(yīng)新的需求
2. 實(shí)現(xiàn)新的需求
案例:演示兩頂帽子的設(shè)計(jì)過程
第二單元 高質(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. 類與接口代碼整潔應(yīng)當(dāng)遵循的原則
4. 注釋代碼的整潔之道
5. 異常處理的代碼整潔之道
案例:實(shí)戰(zhàn)項(xiàng)目的整潔代碼展示
案例分析軟件設(shè)計(jì)原則及其本質(zhì)
1. 低耦合
1) 依賴反轉(zhuǎn)原則(DIP)
案例:購票業(yè)務(wù)類與數(shù)據(jù)訪問類
2) 開放-封閉原則(OCP)
案例:需求變更與可擴(kuò)展點(diǎn)設(shè)計(jì)
案例:Square/Circle的解決方案
2. 高內(nèi)聚
1) 單一職責(zé)原則(SRP)
案例:財(cái)務(wù)憑證變更帶來的問題
案例:超級(jí)大函數(shù)與大對(duì)象的難題
案例:MySQL讀寫分離的改造過程
2) 不要重復(fù)自己原則(DRY)
典型的代碼重復(fù)案例與散彈式修改
探討代碼復(fù)用的設(shè)計(jì)難題與軟件重構(gòu)
案例講解:代碼復(fù)用的常用方法
基于AI編程的DDD落地實(shí)踐
1.國產(chǎn)智能大模型DeepSeek的13個(gè)應(yīng)用場(chǎng)景:
代碼改寫、代碼解釋、代碼生成、中英文翻譯,等等
2.智能大模型核心應(yīng)用的精華:
提示詞工程、文檔上傳、搭建本地知識(shí)庫
3.AI自動(dòng)化編程帶來的挑戰(zhàn):
1)不能交給AI過于復(fù)雜的任務(wù)
2)AI編寫的代碼如何規(guī)范編程,基于某個(gè)平臺(tái)進(jìn)行編程
3)AI編寫的代碼,日后如何變更維護(hù)
解決方案:以DDD作為規(guī)范指導(dǎo)AI編程
1.通過知識(shí)庫制定AI軟件開發(fā)的模板與規(guī)范:
1)文檔模板:架構(gòu)設(shè)計(jì)的模板、用例模型的模板、領(lǐng)域模型的模板
2)開發(fā)規(guī)范:領(lǐng)域?qū)ο?、服?wù)接口、DSL配置、測(cè)試用例的開發(fā)規(guī)范
2.基于知識(shí)庫進(jìn)行的AI軟件開發(fā):
1)基于業(yè)務(wù)需求進(jìn)行分析設(shè)計(jì)
2)將大任務(wù)拆分成無數(shù)個(gè)小任務(wù)
3)基于知識(shí)庫的規(guī)范進(jìn)行AI編程
4)基于知識(shí)庫的規(guī)范AI編寫測(cè)試用例
第三單元 基于AI的軟件重構(gòu)
軟件重構(gòu)的概念與設(shè)計(jì)思想
1. 重構(gòu)是一系列代碼的等量變換
案例:一個(gè)Hello World重構(gòu)過程
2. 重構(gòu)的保險(xiǎn)索:自動(dòng)化測(cè)試
案例:Hello World的自動(dòng)化測(cè)試過程
3. 軟件修改的四種動(dòng)機(jī)——重構(gòu)的價(jià)值
4. 一個(gè)真實(shí)的謊言——重構(gòu)的誤區(qū)
5. 重構(gòu)的主要方法與技巧
重構(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) 每過一段時(shí)間就通過重構(gòu)整理一次代碼
2. 基于AI的軟件重構(gòu)思路
1)用AI進(jìn)行原始代碼的理解
2)用AI進(jìn)行代碼的改寫與優(yōu)化
3)用AI編寫測(cè)試用例
3. 案例:演練Hello World的維護(hù)變更過程
1) 最初的軟件設(shè)計(jì)
2) 第一次變更:抽取方法與抽取類
3) 第二次變更:抽取接口與系統(tǒng)分層
4)重構(gòu)完成以后,用測(cè)試用例進(jìn)行驗(yàn)證
演練一個(gè)完整的重構(gòu)過程
案例分析:重構(gòu)一個(gè)大型遺留系統(tǒng)
1.重構(gòu)第一步:分解大函數(shù)
超級(jí)大函數(shù)及其危害
案例:演示大函數(shù)產(chǎn)生的過程
案例:演示抽取方法操作步驟
實(shí)踐抽取方法會(huì)遇到的問題和解決方案
演練AI編程在抽取方法中的應(yīng)用
2.重構(gòu)第二步:拆分大對(duì)象
超級(jí)大對(duì)象及其危害
案例:演示超級(jí)大對(duì)象的產(chǎn)生過程
案例:演示抽取類的操作步驟
講解單一職責(zé)設(shè)計(jì)原則
案例:演示“分久必合,合久必分”的重構(gòu)過程
演練AI編程在抽取類中的應(yīng)用
3.重構(gòu)第三步:提高復(fù)用率
講解順序編程及其危害
“不要重復(fù)代碼”原則
案例:提高代碼復(fù)用的6個(gè)方法
案例:演示新增代碼時(shí)的代碼復(fù)用過程
用靜態(tài)檢查工具檢查重復(fù)代碼
4.重構(gòu)第四步:可擴(kuò)展設(shè)計(jì)
過度設(shè)計(jì) vs. 恰如其分的設(shè)計(jì)
講解“開放-封閉”的設(shè)計(jì)原則
案例:講解可擴(kuò)展設(shè)計(jì)的4個(gè)方法
案例:講解新增代碼的可擴(kuò)展設(shè)計(jì)過程
5.重構(gòu)第五步:降低耦合度
案例:講解接口、實(shí)現(xiàn)與工廠模式
案例:講解外部接口解耦與適配器模式
演練用AI編程進(jìn)行設(shè)計(jì)模式的設(shè)計(jì)
6.重構(gòu)第六步:系統(tǒng)分層
反思軟件架構(gòu)需要怎樣的分層結(jié)構(gòu)
遺留系統(tǒng)如何擁抱需求變化
遺留系統(tǒng)如何應(yīng)對(duì)技術(shù)變革
7.重構(gòu)第七步:領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的概念
講解領(lǐng)域模型分析方法
演練一個(gè)完整的AI開發(fā)過程
1.通過知識(shí)庫制定AI軟件開發(fā)的模板與規(guī)范:
1)文檔模板:架構(gòu)設(shè)計(jì)的模板、用例模型的模板、領(lǐng)域模型的模板
2)開發(fā)規(guī)范:領(lǐng)域?qū)ο?、服?wù)接口、DSL配置、測(cè)試用例的開發(fā)規(guī)范
2.基于知識(shí)庫進(jìn)行的AI軟件開發(fā):
1)AI輔助的軟件需求探索與編寫需求文檔
2)AI輔助編寫用例模型
3)AI輔助編寫領(lǐng)域模型
4)AI輔助形成數(shù)據(jù)庫設(shè)計(jì),編寫SQL腳本
5)AI輔助編寫領(lǐng)域?qū)ο笈c服務(wù)接口代碼,進(jìn)行DSL配置
6)AI輔助,基于某個(gè)平臺(tái)進(jìn)行業(yè)務(wù)代碼的編寫
7)AI輔助創(chuàng)建測(cè)試用例代碼
第四單元 關(guān)于重構(gòu)的深度討論
什么時(shí)候重構(gòu)
1. 重構(gòu)是一種習(xí)慣
2. 重構(gòu)讓程序可讀
3. 重構(gòu),才好復(fù)用
4. 先重構(gòu),再擴(kuò)展
5. 緊急任務(wù)時(shí)的重構(gòu)
自動(dòng)化測(cè)試的困境
1. 重構(gòu)初期的困局
2. 解耦與自動(dòng)化測(cè)試
3. 建立自動(dòng)化測(cè)試體系
4. 通過AI建立自動(dòng)化測(cè)試體系
關(guān)于重構(gòu)效果的評(píng)價(jià)
1. 評(píng)價(jià)軟件質(zhì)量的指標(biāo)
2. 評(píng)價(jià)軟件質(zhì)量的工具

課程費(fèi)用

6800.00 /人

課程時(shí)長(zhǎng)

2

預(yù)約體驗(yàn)票 我要分享

近期公開課推薦

近期公開課推薦

活動(dòng)詳情

提交需求