架構(gòu)師
互聯(lián)網(wǎng)
電商
電信
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

軟件重構(gòu)實(shí)戰(zhàn)訓(xùn)練營

課程費(fèi)用

6800.00 /人

課程時長

3

成為教練

課程簡介

重構(gòu)是持續(xù)進(jìn)行的,而不是在項(xiàng)目結(jié)束時、發(fā)布版本時、迭代結(jié)束時,甚至不是每天快下班時才進(jìn)行的。重構(gòu)是我們每隔一個小時或者半個小時就要去做的事情。通過重構(gòu),我們可以持續(xù)地保持代碼盡可能干凈、簡單并且具有表達(dá)力。

目標(biāo)收益

隨著不同產(chǎn)品的推出,不同客戶、不同版本的發(fā)布,需要維護(hù)的遺留代碼越來越多,重構(gòu)也就在所難免。不僅如此,所有的軟件系統(tǒng),經(jīng)過一段時間的維護(hù),都會逐漸變成遺留系統(tǒng),并且都遭遇了緩慢而不可抗拒的腐化。因此,軟件開發(fā)人員不得不面對既有系統(tǒng)的混亂代碼。而本課程正是告訴你如何重構(gòu)既有的遺留系統(tǒng),如何重構(gòu)代碼、重構(gòu)設(shè)計(jì)、重構(gòu)架構(gòu)。

培訓(xùn)對象

各類軟件研發(fā)中心的軟件設(shè)計(jì)師、架構(gòu)師、項(xiàng)目經(jīng)理、技術(shù)總監(jiān)、質(zhì)量部門經(jīng)理。對于重構(gòu)技術(shù)懷有疑問和困惑,需要梳理解答的團(tuán)隊(duì)和個人,效果最佳。

課程大綱

第一部分 為什么軟件需要及時重構(gòu)

第一單元 剖析軟件質(zhì)量不斷下降的根源
質(zhì)量不斷下降的表現(xiàn):
1. 程序代碼越來越亂
2. 軟件維護(hù)成本越來越高
3. 軟件變更越來越困難
4. 無法進(jìn)行新技術(shù)的改造
以往采取的措施:
1. 頭痛醫(yī)頭,腳痛醫(yī)腳
2. 拋棄掉重新編寫
3. 因擔(dān)心未來變化而做的過度設(shè)計(jì)
帶來的問題
1. 團(tuán)隊(duì)成員越來越多但效率卻越來越低
2. 測試變得越來越困難而任務(wù)繁重
3. 軟件系統(tǒng)越來越笨重而不適應(yīng)未來變化
分析與反思

案例分析:一個遺留系統(tǒng)的演化過程
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)新的軟件需求

軟件是因需求變更而質(zhì)量下降嗎?
案例分析:推演軟件變更的設(shè)計(jì)過程
應(yīng)對軟件變更的最佳方式:兩頂帽子
1. 重構(gòu)原有代碼以適應(yīng)新的需求
2. 實(shí)現(xiàn)新的需求
案例:演示兩頂帽子的設(shè)計(jì)過程
第二單元 高質(zhì)量的軟件設(shè)計(jì)過程 以往軟件設(shè)計(jì)的過程:
1. 演示以往軟件設(shè)計(jì)的過程
2. 剖析以往軟件設(shè)計(jì)的問題與風(fēng)險(xiǎn)
小步快跑模式的開發(fā)過程:
1. 用最快的速度開發(fā)一個最核心的功能
2. 讓第一個版本運(yùn)行起來并可以驗(yàn)證
3. 在第一個版本的基礎(chǔ)上不斷添加功能:
a. 每次只添加一個很簡單、很單一的功能
b. 每次以兩頂帽子的方式添加新功能
c. 運(yùn)行、調(diào)試與驗(yàn)證
d. 重復(fù)這個過程添加下一個功能
4. 復(fù)雜的系統(tǒng)就是由一次次正確開發(fā)的不斷積累而成
案例:演示小步快跑的開發(fā)過程
小步快跑解決的問題:
1. 復(fù)雜功能有效地解耦
2. 代碼編寫總是可測試與驗(yàn)證
3. 簡化設(shè)計(jì)與思考的復(fù)雜度
4. 適時重構(gòu)以避免軟件退化

測試驅(qū)動設(shè)計(jì)
1. TDD vs. 后測試開發(fā)
2. 案例:演示測試驅(qū)動設(shè)計(jì)的過程
3. 測試驅(qū)動設(shè)計(jì)的優(yōu)勢
4. 實(shí)踐測試驅(qū)動設(shè)計(jì)的難題
討論:自動化測試腳本應(yīng)當(dāng)由誰來寫?

練習(xí):運(yùn)用小步快跑的方式設(shè)計(jì)一個軟件
第二部分 重構(gòu)的概念

第三單元 何為重構(gòu)
軟件重構(gòu)的概念
1. 重構(gòu)是一系列代碼的等量變換
案例:一個Hello World重構(gòu)過程
2. 重構(gòu)的保險(xiǎn)索:自動化測試
案例:Hello World的自動化測試過程
3. 軟件修改的四種動機(jī)——重構(gòu)的價(jià)值
4. 一個真實(shí)的謊言——重構(gòu)的誤區(qū)
5. 重構(gòu)的主要方法與技巧

案例分析:重構(gòu)一個大型遺留系統(tǒng)
1. 重構(gòu)第一步:分解大函數(shù)
超級大函數(shù)及其危害
案例:演示大函數(shù)產(chǎn)生的過程
案例:演示抽取方法操作步驟
實(shí)踐抽取方法會遇到的問題和解決方案
2. 重構(gòu)第二步:拆分大對象
超級大對象及其危害
案例:演示超級大對象的產(chǎn)生過程
案例:演示抽取類的操作步驟
講解單一職責(zé)設(shè)計(jì)原則
案例:演示“分久必合,合久必分”的重構(gòu)過程
3. 重構(gòu)第三步:提高復(fù)用率
講解順序編程及其危害
“不要重復(fù)代碼”原則
案例:提高代碼復(fù)用的6個方法
案例:演示新增代碼時的代碼復(fù)用過程
用靜態(tài)檢查工具檢查重復(fù)代碼
4. 重構(gòu)第四步:可擴(kuò)展設(shè)計(jì)
過度設(shè)計(jì) vs. 恰如其分的設(shè)計(jì)
講解“開放-封閉”的設(shè)計(jì)原則
案例:講解可擴(kuò)展設(shè)計(jì)的4個方法
案例:講解新增代碼的可擴(kuò)展設(shè)計(jì)過程
5. 重構(gòu)第五步:降低耦合度
案例:講解接口、實(shí)現(xiàn)與工廠模式
案例:講解外部接口解耦與適配器模式
案例:講解繼承泛濫問題與橋接模式
案例:講解方法解耦與策略模式
案例:講解過程解耦與命令模式
案例:講解透明擴(kuò)展與組合模式、裝飾者模式
6. 重構(gòu)第六步:系統(tǒng)分層
反思軟件架構(gòu)需要怎樣的分層結(jié)構(gòu)
遺留系統(tǒng)如何擁抱需求變化
遺留系統(tǒng)如何應(yīng)對技術(shù)變革
7. 重構(gòu)第七步:領(lǐng)域驅(qū)動設(shè)計(jì)
領(lǐng)域驅(qū)動設(shè)計(jì)的概念
講解領(lǐng)域模型分析方法
講解原文分析法與領(lǐng)域驅(qū)動設(shè)計(jì)

討論:如何制定重構(gòu)項(xiàng)目計(jì)劃
練習(xí):重構(gòu)一個小程序并編寫測試腳本
第四單元 關(guān)于重構(gòu)的討論 什么時候重構(gòu)
1. 重構(gòu)是一種習(xí)慣
2. 重構(gòu)讓程序可讀
3. 重構(gòu),才好復(fù)用
4. 先重構(gòu),再擴(kuò)展
5. 緊急任務(wù)時的重構(gòu)

測試的困境
1. 重構(gòu)初期的困局
2. 解耦與自動化測試
3. 建立自動化測試體系

重構(gòu)的評價(jià)
1. 評價(jià)軟件質(zhì)量的指標(biāo)
2. 評價(jià)軟件質(zhì)量的工具
第三部分 系統(tǒng)級的重構(gòu)項(xiàng)目

第五單元 遺留系統(tǒng)的技術(shù)改造難題
技術(shù)改造的難題
一些大型遺留系統(tǒng)已經(jīng)運(yùn)行維護(hù)十年以上,現(xiàn)在面臨著技術(shù)改造的難題:
1. 程序越來越亂:代碼在退化,軟件質(zhì)量持續(xù)下降,維護(hù)成本越來越高;
2. 面臨技術(shù)改造:一直在猶豫改還是不改,但現(xiàn)在到了不得不改的時候了。

以往的解決方案:
1. 修修補(bǔ)補(bǔ),遇到什么問題就解決什么問題:
存在的問題:
a.始終治標(biāo)不治本,不能從根本上解決許多問題;
b.有過一些改造,但不敢嘗試真正的技術(shù)改造,越老的系統(tǒng)技術(shù)越落后
存在的問題:面臨著被市場淘汰的絕大風(fēng)險(xiǎn)

2. 徹底丟棄原有系統(tǒng)重新開發(fā),從而快速擺脫以往的技術(shù)債務(wù)
存在的問題:
原系統(tǒng)運(yùn)行維護(hù)十年以上,積累大量繁復(fù)而細(xì)微的業(yè)務(wù)需求與程序邏輯,但在重做過程中都遭到遺失,給項(xiàng)目帶來巨大的風(fēng)險(xiǎn)

問題的實(shí)質(zhì):
1. 面臨巨大市場的壓力,改造是想做不想做都得做的事情了;
2. 原系統(tǒng)中積累大量繁復(fù)而細(xì)微的業(yè)務(wù)需求與程序邏輯,既不在設(shè)計(jì)文檔中,也不為現(xiàn)有的維護(hù)人員所掌握,但一旦遺失卻嚴(yán)重后果;
3. 一邊在技術(shù)改造,一邊還有新的需求需要維護(hù),意味著改造中的新系統(tǒng),在還未替代老系統(tǒng)前,還要不斷與老系統(tǒng)同步
正是有了如此多的難題與風(fēng)險(xiǎn),使得舊系統(tǒng)改造面臨進(jìn)退兩難的困境。

演化式重構(gòu)解決方案:
1. 演化式地對原系統(tǒng)進(jìn)行重構(gòu),漸進(jìn)式地進(jìn)行優(yōu)化改進(jìn)
不是丟棄原系統(tǒng),而是從原系統(tǒng)開始,運(yùn)用重構(gòu)方法進(jìn)行一小步一小步的優(yōu)化與調(diào)整,使技術(shù)改造過程變得平滑
2. 培訓(xùn)、指導(dǎo)與審查并舉,切實(shí)提高代碼編寫質(zhì)量
首先對人員進(jìn)行代碼質(zhì)量與重構(gòu)的培訓(xùn),制訂代碼規(guī)范與靜態(tài)代碼檢查。在開發(fā)初期加強(qiáng)對每項(xiàng)設(shè)計(jì)的指導(dǎo),之后組長責(zé)任制進(jìn)行代碼審查。
3. 組件開發(fā)-測試為一體的團(tuán)隊(duì)
一邊改造,一邊編寫自動化測試腳本,讓改造過程隨時處于質(zhì)量監(jiān)控之下
4. 優(yōu)化與維護(hù)并行開展,讓改造工作快速起效
制訂迭代式計(jì)劃,每完成一次改造就發(fā)布一個可運(yùn)行版本。之后的運(yùn)行維護(hù)在該版本的基礎(chǔ)上開展
5. 平臺建設(shè)與系統(tǒng)重構(gòu)并行開展,加快改造速度
分成平臺組與重構(gòu)組并行開展工作,一邊在搭建新的技術(shù)開發(fā)平臺,一邊運(yùn)用重構(gòu)在優(yōu)化原有系統(tǒng),最終實(shí)現(xiàn)原有系統(tǒng)向新開發(fā)平臺的代碼遷移
第六單元 系統(tǒng)級軟件重構(gòu)過程 案例分析:演化式重構(gòu)的改造過程:
1. 概念及解決的問題
演化式重構(gòu)的概念
建立領(lǐng)域驅(qū)動設(shè)計(jì)的過程
2. 模塊的選擇與迭代項(xiàng)目計(jì)劃
先選擇易上手、快速起效的模塊開始改造
再選擇最核心、最關(guān)鍵的模塊進(jìn)行改造
制訂迭代式技術(shù)改造項(xiàng)目計(jì)劃
3. 組建一個開發(fā)-測試為一體的團(tuán)隊(duì)
測試人員與開發(fā)人員同時開始工作
改造初期的自動化測試過程
逐漸編寫自動化測試程序的過程
4. 平臺建設(shè)與系統(tǒng)重構(gòu)并舉
重構(gòu)組:
一邊在重構(gòu),一邊在升級維護(hù)上線,既使改造工作快速起效,又使重構(gòu)的成功以最快的速度得到驗(yàn)證,降低改造風(fēng)險(xiǎn)
平臺組:
構(gòu)建基于領(lǐng)域的輕量級系統(tǒng)架構(gòu),既為舊系統(tǒng)代碼移植創(chuàng)造條件,又為技術(shù)的更迭降低成本
5. 平滑地代碼移植
代碼移植的條件:
1)舊系統(tǒng)完成了代碼重構(gòu),實(shí)現(xiàn)業(yè)務(wù)代碼與技術(shù)代碼的有效解耦;
2)新平臺構(gòu)建了一個基于領(lǐng)域的系統(tǒng)架構(gòu)。
代碼移植過程:
1)將舊系統(tǒng)中的業(yè)務(wù)領(lǐng)域?qū)佑行崛〕鰜恚?br/>2)將業(yè)務(wù)領(lǐng)域代碼放入新平臺中
3)完成其它的配置、接口、前端界面等工作
4)運(yùn)行、調(diào)試、測試
改造的效果:
1. 實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計(jì),擁抱未來需求的變化
2. 建立自動化測試體系保障軟件質(zhì)量
3. 更加靈活而快速地應(yīng)對未來技術(shù)的更新

討論:系統(tǒng)級重構(gòu)的經(jīng)驗(yàn)與分享
第一部分 為什么軟件需要及時重構(gòu)

第一單元 剖析軟件質(zhì)量不斷下降的根源
質(zhì)量不斷下降的表現(xiàn):
1. 程序代碼越來越亂
2. 軟件維護(hù)成本越來越高
3. 軟件變更越來越困難
4. 無法進(jìn)行新技術(shù)的改造
以往采取的措施:
1. 頭痛醫(yī)頭,腳痛醫(yī)腳
2. 拋棄掉重新編寫
3. 因擔(dān)心未來變化而做的過度設(shè)計(jì)
帶來的問題
1. 團(tuán)隊(duì)成員越來越多但效率卻越來越低
2. 測試變得越來越困難而任務(wù)繁重
3. 軟件系統(tǒng)越來越笨重而不適應(yīng)未來變化
分析與反思

案例分析:一個遺留系統(tǒng)的演化過程
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)新的軟件需求

軟件是因需求變更而質(zhì)量下降嗎?
案例分析:推演軟件變更的設(shè)計(jì)過程
應(yīng)對軟件變更的最佳方式:兩頂帽子
1. 重構(gòu)原有代碼以適應(yīng)新的需求
2. 實(shí)現(xiàn)新的需求
案例:演示兩頂帽子的設(shè)計(jì)過程
第二單元 高質(zhì)量的軟件設(shè)計(jì)過程
以往軟件設(shè)計(jì)的過程:
1. 演示以往軟件設(shè)計(jì)的過程
2. 剖析以往軟件設(shè)計(jì)的問題與風(fēng)險(xiǎn)
小步快跑模式的開發(fā)過程:
1. 用最快的速度開發(fā)一個最核心的功能
2. 讓第一個版本運(yùn)行起來并可以驗(yàn)證
3. 在第一個版本的基礎(chǔ)上不斷添加功能:
a. 每次只添加一個很簡單、很單一的功能
b. 每次以兩頂帽子的方式添加新功能
c. 運(yùn)行、調(diào)試與驗(yàn)證
d. 重復(fù)這個過程添加下一個功能
4. 復(fù)雜的系統(tǒng)就是由一次次正確開發(fā)的不斷積累而成
案例:演示小步快跑的開發(fā)過程
小步快跑解決的問題:
1. 復(fù)雜功能有效地解耦
2. 代碼編寫總是可測試與驗(yàn)證
3. 簡化設(shè)計(jì)與思考的復(fù)雜度
4. 適時重構(gòu)以避免軟件退化

測試驅(qū)動設(shè)計(jì)
1. TDD vs. 后測試開發(fā)
2. 案例:演示測試驅(qū)動設(shè)計(jì)的過程
3. 測試驅(qū)動設(shè)計(jì)的優(yōu)勢
4. 實(shí)踐測試驅(qū)動設(shè)計(jì)的難題
討論:自動化測試腳本應(yīng)當(dāng)由誰來寫?

練習(xí):運(yùn)用小步快跑的方式設(shè)計(jì)一個軟件
第二部分 重構(gòu)的概念

第三單元 何為重構(gòu)
軟件重構(gòu)的概念
1. 重構(gòu)是一系列代碼的等量變換
案例:一個Hello World重構(gòu)過程
2. 重構(gòu)的保險(xiǎn)索:自動化測試
案例:Hello World的自動化測試過程
3. 軟件修改的四種動機(jī)——重構(gòu)的價(jià)值
4. 一個真實(shí)的謊言——重構(gòu)的誤區(qū)
5. 重構(gòu)的主要方法與技巧

案例分析:重構(gòu)一個大型遺留系統(tǒng)
1. 重構(gòu)第一步:分解大函數(shù)
超級大函數(shù)及其危害
案例:演示大函數(shù)產(chǎn)生的過程
案例:演示抽取方法操作步驟
實(shí)踐抽取方法會遇到的問題和解決方案
2. 重構(gòu)第二步:拆分大對象
超級大對象及其危害
案例:演示超級大對象的產(chǎn)生過程
案例:演示抽取類的操作步驟
講解單一職責(zé)設(shè)計(jì)原則
案例:演示“分久必合,合久必分”的重構(gòu)過程
3. 重構(gòu)第三步:提高復(fù)用率
講解順序編程及其危害
“不要重復(fù)代碼”原則
案例:提高代碼復(fù)用的6個方法
案例:演示新增代碼時的代碼復(fù)用過程
用靜態(tài)檢查工具檢查重復(fù)代碼
4. 重構(gòu)第四步:可擴(kuò)展設(shè)計(jì)
過度設(shè)計(jì) vs. 恰如其分的設(shè)計(jì)
講解“開放-封閉”的設(shè)計(jì)原則
案例:講解可擴(kuò)展設(shè)計(jì)的4個方法
案例:講解新增代碼的可擴(kuò)展設(shè)計(jì)過程
5. 重構(gòu)第五步:降低耦合度
案例:講解接口、實(shí)現(xiàn)與工廠模式
案例:講解外部接口解耦與適配器模式
案例:講解繼承泛濫問題與橋接模式
案例:講解方法解耦與策略模式
案例:講解過程解耦與命令模式
案例:講解透明擴(kuò)展與組合模式、裝飾者模式
6. 重構(gòu)第六步:系統(tǒng)分層
反思軟件架構(gòu)需要怎樣的分層結(jié)構(gòu)
遺留系統(tǒng)如何擁抱需求變化
遺留系統(tǒng)如何應(yīng)對技術(shù)變革
7. 重構(gòu)第七步:領(lǐng)域驅(qū)動設(shè)計(jì)
領(lǐng)域驅(qū)動設(shè)計(jì)的概念
講解領(lǐng)域模型分析方法
講解原文分析法與領(lǐng)域驅(qū)動設(shè)計(jì)

討論:如何制定重構(gòu)項(xiàng)目計(jì)劃
練習(xí):重構(gòu)一個小程序并編寫測試腳本
第四單元 關(guān)于重構(gòu)的討論
什么時候重構(gòu)
1. 重構(gòu)是一種習(xí)慣
2. 重構(gòu)讓程序可讀
3. 重構(gòu),才好復(fù)用
4. 先重構(gòu),再擴(kuò)展
5. 緊急任務(wù)時的重構(gòu)

測試的困境
1. 重構(gòu)初期的困局
2. 解耦與自動化測試
3. 建立自動化測試體系

重構(gòu)的評價(jià)
1. 評價(jià)軟件質(zhì)量的指標(biāo)
2. 評價(jià)軟件質(zhì)量的工具
第三部分 系統(tǒng)級的重構(gòu)項(xiàng)目

第五單元 遺留系統(tǒng)的技術(shù)改造難題
技術(shù)改造的難題
一些大型遺留系統(tǒng)已經(jīng)運(yùn)行維護(hù)十年以上,現(xiàn)在面臨著技術(shù)改造的難題:
1. 程序越來越亂:代碼在退化,軟件質(zhì)量持續(xù)下降,維護(hù)成本越來越高;
2. 面臨技術(shù)改造:一直在猶豫改還是不改,但現(xiàn)在到了不得不改的時候了。

以往的解決方案:
1. 修修補(bǔ)補(bǔ),遇到什么問題就解決什么問題:
存在的問題:
a.始終治標(biāo)不治本,不能從根本上解決許多問題;
b.有過一些改造,但不敢嘗試真正的技術(shù)改造,越老的系統(tǒng)技術(shù)越落后
存在的問題:面臨著被市場淘汰的絕大風(fēng)險(xiǎn)

2. 徹底丟棄原有系統(tǒng)重新開發(fā),從而快速擺脫以往的技術(shù)債務(wù)
存在的問題:
原系統(tǒng)運(yùn)行維護(hù)十年以上,積累大量繁復(fù)而細(xì)微的業(yè)務(wù)需求與程序邏輯,但在重做過程中都遭到遺失,給項(xiàng)目帶來巨大的風(fēng)險(xiǎn)

問題的實(shí)質(zhì):
1. 面臨巨大市場的壓力,改造是想做不想做都得做的事情了;
2. 原系統(tǒng)中積累大量繁復(fù)而細(xì)微的業(yè)務(wù)需求與程序邏輯,既不在設(shè)計(jì)文檔中,也不為現(xiàn)有的維護(hù)人員所掌握,但一旦遺失卻嚴(yán)重后果;
3. 一邊在技術(shù)改造,一邊還有新的需求需要維護(hù),意味著改造中的新系統(tǒng),在還未替代老系統(tǒng)前,還要不斷與老系統(tǒng)同步
正是有了如此多的難題與風(fēng)險(xiǎn),使得舊系統(tǒng)改造面臨進(jìn)退兩難的困境。

演化式重構(gòu)解決方案:
1. 演化式地對原系統(tǒng)進(jìn)行重構(gòu),漸進(jìn)式地進(jìn)行優(yōu)化改進(jìn)
不是丟棄原系統(tǒng),而是從原系統(tǒng)開始,運(yùn)用重構(gòu)方法進(jìn)行一小步一小步的優(yōu)化與調(diào)整,使技術(shù)改造過程變得平滑
2. 培訓(xùn)、指導(dǎo)與審查并舉,切實(shí)提高代碼編寫質(zhì)量
首先對人員進(jìn)行代碼質(zhì)量與重構(gòu)的培訓(xùn),制訂代碼規(guī)范與靜態(tài)代碼檢查。在開發(fā)初期加強(qiáng)對每項(xiàng)設(shè)計(jì)的指導(dǎo),之后組長責(zé)任制進(jìn)行代碼審查。
3. 組件開發(fā)-測試為一體的團(tuán)隊(duì)
一邊改造,一邊編寫自動化測試腳本,讓改造過程隨時處于質(zhì)量監(jiān)控之下
4. 優(yōu)化與維護(hù)并行開展,讓改造工作快速起效
制訂迭代式計(jì)劃,每完成一次改造就發(fā)布一個可運(yùn)行版本。之后的運(yùn)行維護(hù)在該版本的基礎(chǔ)上開展
5. 平臺建設(shè)與系統(tǒng)重構(gòu)并行開展,加快改造速度
分成平臺組與重構(gòu)組并行開展工作,一邊在搭建新的技術(shù)開發(fā)平臺,一邊運(yùn)用重構(gòu)在優(yōu)化原有系統(tǒng),最終實(shí)現(xiàn)原有系統(tǒng)向新開發(fā)平臺的代碼遷移
第六單元 系統(tǒng)級軟件重構(gòu)過程
案例分析:演化式重構(gòu)的改造過程:
1. 概念及解決的問題
演化式重構(gòu)的概念
建立領(lǐng)域驅(qū)動設(shè)計(jì)的過程
2. 模塊的選擇與迭代項(xiàng)目計(jì)劃
先選擇易上手、快速起效的模塊開始改造
再選擇最核心、最關(guān)鍵的模塊進(jìn)行改造
制訂迭代式技術(shù)改造項(xiàng)目計(jì)劃
3. 組建一個開發(fā)-測試為一體的團(tuán)隊(duì)
測試人員與開發(fā)人員同時開始工作
改造初期的自動化測試過程
逐漸編寫自動化測試程序的過程
4. 平臺建設(shè)與系統(tǒng)重構(gòu)并舉
重構(gòu)組:
一邊在重構(gòu),一邊在升級維護(hù)上線,既使改造工作快速起效,又使重構(gòu)的成功以最快的速度得到驗(yàn)證,降低改造風(fēng)險(xiǎn)
平臺組:
構(gòu)建基于領(lǐng)域的輕量級系統(tǒng)架構(gòu),既為舊系統(tǒng)代碼移植創(chuàng)造條件,又為技術(shù)的更迭降低成本
5. 平滑地代碼移植
代碼移植的條件:
1)舊系統(tǒng)完成了代碼重構(gòu),實(shí)現(xiàn)業(yè)務(wù)代碼與技術(shù)代碼的有效解耦;
2)新平臺構(gòu)建了一個基于領(lǐng)域的系統(tǒng)架構(gòu)。
代碼移植過程:
1)將舊系統(tǒng)中的業(yè)務(wù)領(lǐng)域?qū)佑行崛〕鰜恚?br/>2)將業(yè)務(wù)領(lǐng)域代碼放入新平臺中
3)完成其它的配置、接口、前端界面等工作
4)運(yùn)行、調(diào)試、測試
改造的效果:
1. 實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計(jì),擁抱未來需求的變化
2. 建立自動化測試體系保障軟件質(zhì)量
3. 更加靈活而快速地應(yīng)對未來技術(shù)的更新

討論:系統(tǒng)級重構(gòu)的經(jīng)驗(yàn)與分享

課程費(fèi)用

6800.00 /人

課程時長

3

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

近期公開課推薦

近期公開課推薦

活動詳情

提交需求