架構(gòu)師
其他
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

重構(gòu)-復(fù)雜遺留系統(tǒng)重構(gòu)與維護(hù)

劉捷

咨詢公司 曾任職BEA資深軟件架構(gòu)師

1998畢業(yè)獲得計(jì)算機(jī)碩士學(xué)位。畢業(yè)后在國(guó)外工作多年?;貒?guó)后加入IBM中國(guó)研發(fā)中心,BEA中國(guó)研發(fā)中心,oracle中國(guó)研發(fā)中心等。任軟件開(kāi)發(fā)工程師,高級(jí)技術(shù)專家,首席架構(gòu)師等。主要負(fù)責(zé)客戶項(xiàng)目的架構(gòu)設(shè)計(jì)和項(xiàng)目開(kāi)發(fā),技術(shù)支持。保證項(xiàng)目的成功實(shí)施,運(yùn)行,維護(hù)。參加過(guò)全省、全國(guó)多個(gè)大型的計(jì)算機(jī)應(yīng)用項(xiàng)目。擅長(zhǎng)軟件架構(gòu)設(shè)計(jì)與評(píng)審, 極限編程(XP)、測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)、持續(xù)集成(CI)、重構(gòu)(Refactor)、演進(jìn)式設(shè)計(jì)(Evolutionary Design)以及降低代碼的復(fù)雜度(Cyclomatic Complexity)。通過(guò)重構(gòu)、重寫,將代碼量大幅度縮減,并且提高可讀性、可擴(kuò)展性、可變更性,從而大幅度降低開(kāi)發(fā)成本。他熱愛(ài)學(xué)習(xí)、思考與分享,曾翻譯過(guò)多本技術(shù)書籍,在網(wǎng)站上發(fā)表過(guò)各種文章,并曾多次在技術(shù)會(huì)議和社區(qū)活動(dòng)上發(fā)表演講。
他還是認(rèn)證培訓(xùn)師,為多家大型軟件中心做過(guò)培訓(xùn)。比如EMC,VMware,華為,中興通信,思科,諾基亞,朗訊,愛(ài)立信,上海貝爾,AutoDesk,Adobe,百度,阿里巴巴,騰訊,金山移動(dòng),支付寶等。

1998畢業(yè)獲得計(jì)算機(jī)碩士學(xué)位。畢業(yè)后在國(guó)外工作多年?;貒?guó)后加入IBM中國(guó)研發(fā)中心,BEA中國(guó)研發(fā)中心,oracle中國(guó)研發(fā)中心等。任軟件開(kāi)發(fā)工程師,高級(jí)技術(shù)專家,首席架構(gòu)師等。主要負(fù)責(zé)客戶項(xiàng)目的架構(gòu)設(shè)計(jì)和項(xiàng)目開(kāi)發(fā),技術(shù)支持。保證項(xiàng)目的成功實(shí)施,運(yùn)行,維護(hù)。參加過(guò)全省、全國(guó)多個(gè)大型的計(jì)算機(jī)應(yīng)用項(xiàng)目。擅長(zhǎng)軟件架構(gòu)設(shè)計(jì)與評(píng)審, 極限編程(XP)、測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)、持續(xù)集成(CI)、重構(gòu)(Refactor)、演進(jìn)式設(shè)計(jì)(Evolutionary Design)以及降低代碼的復(fù)雜度(Cyclomatic Complexity)。通過(guò)重構(gòu)、重寫,將代碼量大幅度縮減,并且提高可讀性、可擴(kuò)展性、可變更性,從而大幅度降低開(kāi)發(fā)成本。他熱愛(ài)學(xué)習(xí)、思考與分享,曾翻譯過(guò)多本技術(shù)書籍,在網(wǎng)站上發(fā)表過(guò)各種文章,并曾多次在技術(shù)會(huì)議和社區(qū)活動(dòng)上發(fā)表演講。 他還是認(rèn)證培訓(xùn)師,為多家大型軟件中心做過(guò)培訓(xùn)。比如EMC,VMware,華為,中興通信,思科,諾基亞,朗訊,愛(ài)立信,上海貝爾,AutoDesk,Adobe,百度,阿里巴巴,騰訊,金山移動(dòng),支付寶等。

課程費(fèi)用

5800.00 /人

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

2

成為教練

課程簡(jiǎn)介

本課程所要講述的內(nèi)容---重構(gòu)。簡(jiǎn)言之,該課程教你如何扭轉(zhuǎn)系統(tǒng)腐化,重構(gòu)復(fù)雜遺留系統(tǒng),減低維護(hù)成本。在面對(duì)一個(gè)錯(cuò)綜復(fù)雜的,不透明的,令人費(fèi)解的系統(tǒng)時(shí)如何慢慢地,逐步地將其變成一個(gè)簡(jiǎn)單的,有良好組織和設(shè)計(jì)的系統(tǒng)。

目標(biāo)收益

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

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

課程大綱

第一部分 為什么軟件需要及時(shí)重構(gòu)
第一單元 軟件腐爛--重構(gòu)的必要性
內(nèi)容一:軟件業(yè)者的反思: 軟件腐爛
1.軟件腐爛(Software rot),也叫做代碼腐爛(code rot)或軟件腐朽(software decay)。它描述了隨著時(shí)間的逝去感知到軟件的緩慢衰退,其將最終導(dǎo)致它變得不完善、不可使用或難以維護(hù)。
2.軟件腐爛(Software rot)有兩種形式:
3.1)隱匿的腐爛:軟件逐漸不再(仍)被使用隨著剩余的應(yīng)用程序的改變變得不能用。它已經(jīng)被觀察到不再被使用的軟件有可能一年的半衰期;
4.2) 活動(dòng)的腐爛:軟件隨著不斷地被修改趨向于失去它的完整性。
5.破窗效應(yīng)與技術(shù)債務(wù)
6.案例演示1-通過(guò)演示大型項(xiàng)目,隨著客戶需求的變化,導(dǎo)致軟件結(jié)構(gòu)混亂,大家反思,為什么? 你認(rèn)為軟件腐爛的原因? 反思你們公司的軟件系統(tǒng)也面臨這樣的問(wèn)題嗎?
第二部分 重構(gòu)
第二單元 何為重構(gòu)
內(nèi)容一:重構(gòu)
1.重構(gòu)概述
2.何時(shí)重構(gòu)
3.重構(gòu)的誤區(qū)
4.重構(gòu)是持續(xù)進(jìn)行的,不要先編寫爛代碼,再抽出重構(gòu)
5.如何發(fā)現(xiàn)哪些地方需要重構(gòu)
6.如何保證重構(gòu)的正確
7.如何測(cè)試重構(gòu)
8.通過(guò)一個(gè)小案例演示重構(gòu)的基本思想(什么時(shí)間重構(gòu),如何發(fā)現(xiàn)重構(gòu)點(diǎn),如何保證重構(gòu)的正確性,最后如何驗(yàn)收)

內(nèi)容二:案例—通過(guò)實(shí)際項(xiàng)目演示重構(gòu)
1.介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì)
2.閱讀代碼指出代碼壞癥狀
3.通過(guò)重構(gòu)逐步改善代碼質(zhì)量
4.通過(guò)該案例演示重構(gòu)的過(guò)程,我們遇到的難處,如何解決?

內(nèi)容三:重構(gòu)關(guān)鍵—代碼的壞味道
1.代碼壞味道概述
2.代碼壞味道的分類
3.識(shí)別代碼壞味道,是重構(gòu)的最重要一步
4.所謂重構(gòu),無(wú)非就是嗅到壞味道,然后,一小步一小步的改了它。問(wèn)題是,很多人對(duì)壞味道的容忍度讓他們嗅不到壞味道,
5.案例分析—通過(guò)真實(shí)項(xiàng)目的代碼,分析代碼壞味道
第二單元 重構(gòu) 內(nèi)容四一:重構(gòu)
1.重構(gòu)手法概述
2.簡(jiǎn)要演示重構(gòu)的主要手法
3.使用IDE重構(gòu)工具進(jìn)行重構(gòu)
4.通過(guò)案例演示如何通過(guò)重構(gòu)工具完成重構(gòu)

內(nèi)容二:Rhythm of Refactoring -baby step
1.Baby steps involve making a few code changes and then checking your work by running tests. Typical refactorings take seconds or minutes to perform
2.The Rhythm of Refactoring goes like this:
a)Verify that all automated tests (microtests) pass
b)Decide what code to change
c)Implement one or more refactorings carefully
d)Run the microtests whenever you wish to confirm that changes have not altered system behavior
e)Repeat until the refactoring is complete or revert to an earlier state
第二單元 重構(gòu)難題 內(nèi)容一:重構(gòu)技術(shù)難題
1.如何發(fā)現(xiàn)重構(gòu)點(diǎn)
2.知道重構(gòu)的目標(biāo)(結(jié)果)
3.如何去重構(gòu)—重構(gòu)實(shí)踐
4.如何保證重構(gòu)的正確性-單元測(cè)試

內(nèi)容二:重構(gòu)業(yè)務(wù)難題
1.重構(gòu)手法概述
2.簡(jiǎn)要演示重構(gòu)的主要手法
第三部分 重構(gòu)實(shí)戰(zhàn)1一函數(shù)相關(guān)重構(gòu)
第三單元 函數(shù)重構(gòu)
內(nèi)容一:函數(shù)的重構(gòu)
1.函數(shù)的重構(gòu)
2.巨型函數(shù)的種類
a)項(xiàng)目列表式巨型方法
b)鋸齒狀巨型方法
3.分解函數(shù)
4.助手方法提取
5.利用自動(dòng)重構(gòu)對(duì)付巨型方法
6.利用手工重構(gòu)對(duì)付巨型方法
7.引入感知變量
8.函數(shù)依賴收集
9.分解助手方法和方法對(duì)象
10.通過(guò)案例介紹長(zhǎng)函數(shù)的重構(gòu)最佳實(shí)踐
第三單元 函數(shù)策略和技巧 內(nèi)容一: Refactoring Strategies & Tactics
1.Refactoring Strategy: Piecemeal Refactoring
2.Refactoring Strategy:Divide & Conquer
3.Refactoring Strategy:Narrowed Change
4.Refactoring Strategy:Parallel Change
5.Refactoring Strategy:Unified Methods
6.Refactoring Strategy:Evolved Target
7.Refactoring Strategy: Graceful Retreat
8.Refactoring Strategy: Gradual Cutover
9.Refactoring Strategy: Preparing for Change
10.Refactoring Tactic: Rejected Parameter
11.Refactoring Tactic: Caller Swap
12.Refactoring Tactic:Encapsulated Dependency
第四部分 重構(gòu)實(shí)戰(zhàn)2一類重構(gòu)第
四單元 類重構(gòu)
內(nèi)容一:重構(gòu)案例—該案例重點(diǎn) 巨大類的重構(gòu)
1.重構(gòu)大類
1.對(duì)象的職責(zé)重構(gòu)
2.職責(zé)的識(shí)別
a)方法分組
b)觀察隱藏方法
c)尋找可以更改的原因
d)尋找內(nèi)部關(guān)系
e)尋找主要職責(zé)
f)接口分離—接口隔離原則
3.提取類和接口
4.通過(guò)案例介紹如何重構(gòu)巨大的類
第五部分 重構(gòu)實(shí)戰(zhàn)3一重構(gòu)到模式
第五單元 重構(gòu)到模式
內(nèi)容一:案例---重構(gòu)設(shè)計(jì)方案引入設(shè)計(jì)模式
1.通過(guò)項(xiàng)目分析重構(gòu)到模式的手段
2.構(gòu)造Template Method
3.以Composite取代一/多之分
4.引入Null Object
5.用Adapter統(tǒng)一接口
6.用Fatory Method引入多態(tài)創(chuàng)建
5.通過(guò)案例介紹如何重構(gòu)原始設(shè)計(jì)方案,演示如何通過(guò)重構(gòu)導(dǎo)入設(shè)計(jì)模式

內(nèi)容二:案例---重點(diǎn)介紹重構(gòu)基本類型依賴和對(duì)應(yīng)模式
1.通過(guò)案例學(xué)習(xí)以下重構(gòu)到模式手段
2.以State取代狀態(tài)改變條件語(yǔ)句
3.以Strategy取代條件邏輯
4.以Composite取代隱含樹
5.以Interpreter取代隱式語(yǔ)言
6.轉(zhuǎn)移裝飾功能到Decorator
7.用Builder封裝Composite
8.重點(diǎn)學(xué)習(xí)案例的重構(gòu)到模式的過(guò)程

內(nèi)容三:案例---重點(diǎn)介紹重構(gòu)代碼重復(fù)和對(duì)應(yīng)模式
7.通過(guò)案例學(xué)習(xí)以下重構(gòu)到模式手段
8.構(gòu)造Template Method
9.以Composite取代一/多之分
10.引入Null Object
11.用Adapter統(tǒng)一接口
12.用Fatory Method引入多態(tài)創(chuàng)建
13.重點(diǎn)學(xué)習(xí)案例的重構(gòu)到模式的過(guò)程

內(nèi)容四:案例---重點(diǎn)介紹重構(gòu)代碼過(guò)長(zhǎng)/過(guò)大的類/方法和對(duì)應(yīng)模式
1.轉(zhuǎn)移聚集操作到Vistor
2.以Strategy取代條件邏輯
3.以Command取代條件調(diào)度程序
4.轉(zhuǎn)移聚集操作到Collecting Parameter
5.重點(diǎn)學(xué)習(xí)案例的重構(gòu)到模式的過(guò)程
第六部分 重構(gòu)實(shí)戰(zhàn)4一模塊/組件重構(gòu)
第六單元 模塊重構(gòu)
內(nèi)容一:模塊重構(gòu)
1.優(yōu)良的系統(tǒng)設(shè)計(jì)意味著我們把系統(tǒng)分割成了一個(gè)個(gè)可單獨(dú)部署的組件,單獨(dú)部署意味著如果更改了一個(gè)組件,我們也不需要重新部署其他組件。
2.組件和包 壞味道
3.模塊之間解耦
4.組件的內(nèi)聚性實(shí)踐
5.組件的依賴性實(shí)踐
6.企業(yè)應(yīng)用系統(tǒng)組件設(shè)計(jì)最佳實(shí)踐
7.分析某項(xiàng)目,演示模塊重構(gòu),如何在大型應(yīng)用系統(tǒng)進(jìn)行模塊重構(gòu)
第七部分 安全重構(gòu)--構(gòu)筑重構(gòu)測(cè)試體系
第七單元 單元測(cè)試-構(gòu)筑測(cè)試體系
內(nèi)容一:理解單元測(cè)試
1.理解單元測(cè)試 第一個(gè)單元測(cè)試
2.單元測(cè)試框架提供了什么功能
3.好的測(cè)試是什么樣子的
4.為什么要寫單元測(cè)試,為什么不寫單元測(cè)試
5.為什么要寫"好"的單元測(cè)試
6.分析真實(shí)項(xiàng)目,如何做單元測(cè)試, 已經(jīng)相關(guān)問(wèn)題

內(nèi)容二:構(gòu)筑測(cè)試體系
1.單元測(cè)試中的壞味道
2.讓測(cè)試容易被看懂的模式
3.讓測(cè)試容易維護(hù)的模式
4.讓測(cè)試被信得過(guò)的模式
5.重構(gòu)單元測(cè)試,改進(jìn)代碼設(shè)計(jì)
6.如何在集成與單元、黑盒或白盒、Mock和非Mock之間做選擇?
7.結(jié)合多個(gè)案例項(xiàng)目進(jìn)行分析,分析什么是好的單元測(cè)試
第七單元 重構(gòu)管理 內(nèi)容一:安全重構(gòu)
1.重構(gòu)的恐懼心里
2.重構(gòu)勇氣
3.安全重構(gòu)和祈禱式重構(gòu)
4.安全重構(gòu)保證
a)依賴編輯器
b)簽名保持
c)單一目標(biāo)
d)依賴編譯器
e)個(gè)人的能力
f)代碼審查
g)單元測(cè)試
h)驗(yàn)收測(cè)試
i)人工測(cè)試
5.通過(guò)案例如何保證重構(gòu)的正確性
第一部分 為什么軟件需要及時(shí)重構(gòu)
第一單元 軟件腐爛--重構(gòu)的必要性
內(nèi)容一:軟件業(yè)者的反思: 軟件腐爛
1.軟件腐爛(Software rot),也叫做代碼腐爛(code rot)或軟件腐朽(software decay)。它描述了隨著時(shí)間的逝去感知到軟件的緩慢衰退,其將最終導(dǎo)致它變得不完善、不可使用或難以維護(hù)。
2.軟件腐爛(Software rot)有兩種形式:
3.1)隱匿的腐爛:軟件逐漸不再(仍)被使用隨著剩余的應(yīng)用程序的改變變得不能用。它已經(jīng)被觀察到不再被使用的軟件有可能一年的半衰期;
4.2) 活動(dòng)的腐爛:軟件隨著不斷地被修改趨向于失去它的完整性。
5.破窗效應(yīng)與技術(shù)債務(wù)
6.案例演示1-通過(guò)演示大型項(xiàng)目,隨著客戶需求的變化,導(dǎo)致軟件結(jié)構(gòu)混亂,大家反思,為什么? 你認(rèn)為軟件腐爛的原因? 反思你們公司的軟件系統(tǒng)也面臨這樣的問(wèn)題嗎?
第二部分 重構(gòu)
第二單元 何為重構(gòu)
內(nèi)容一:重構(gòu)
1.重構(gòu)概述
2.何時(shí)重構(gòu)
3.重構(gòu)的誤區(qū)
4.重構(gòu)是持續(xù)進(jìn)行的,不要先編寫爛代碼,再抽出重構(gòu)
5.如何發(fā)現(xiàn)哪些地方需要重構(gòu)
6.如何保證重構(gòu)的正確
7.如何測(cè)試重構(gòu)
8.通過(guò)一個(gè)小案例演示重構(gòu)的基本思想(什么時(shí)間重構(gòu),如何發(fā)現(xiàn)重構(gòu)點(diǎn),如何保證重構(gòu)的正確性,最后如何驗(yàn)收)

內(nèi)容二:案例—通過(guò)實(shí)際項(xiàng)目演示重構(gòu)
1.介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì)
2.閱讀代碼指出代碼壞癥狀
3.通過(guò)重構(gòu)逐步改善代碼質(zhì)量
4.通過(guò)該案例演示重構(gòu)的過(guò)程,我們遇到的難處,如何解決?

內(nèi)容三:重構(gòu)關(guān)鍵—代碼的壞味道
1.代碼壞味道概述
2.代碼壞味道的分類
3.識(shí)別代碼壞味道,是重構(gòu)的最重要一步
4.所謂重構(gòu),無(wú)非就是嗅到壞味道,然后,一小步一小步的改了它。問(wèn)題是,很多人對(duì)壞味道的容忍度讓他們嗅不到壞味道,
5.案例分析—通過(guò)真實(shí)項(xiàng)目的代碼,分析代碼壞味道
第二單元 重構(gòu)
內(nèi)容四一:重構(gòu)
1.重構(gòu)手法概述
2.簡(jiǎn)要演示重構(gòu)的主要手法
3.使用IDE重構(gòu)工具進(jìn)行重構(gòu)
4.通過(guò)案例演示如何通過(guò)重構(gòu)工具完成重構(gòu)

內(nèi)容二:Rhythm of Refactoring -baby step
1.Baby steps involve making a few code changes and then checking your work by running tests. Typical refactorings take seconds or minutes to perform
2.The Rhythm of Refactoring goes like this:
a)Verify that all automated tests (microtests) pass
b)Decide what code to change
c)Implement one or more refactorings carefully
d)Run the microtests whenever you wish to confirm that changes have not altered system behavior
e)Repeat until the refactoring is complete or revert to an earlier state
第二單元 重構(gòu)難題
內(nèi)容一:重構(gòu)技術(shù)難題
1.如何發(fā)現(xiàn)重構(gòu)點(diǎn)
2.知道重構(gòu)的目標(biāo)(結(jié)果)
3.如何去重構(gòu)—重構(gòu)實(shí)踐
4.如何保證重構(gòu)的正確性-單元測(cè)試

內(nèi)容二:重構(gòu)業(yè)務(wù)難題
1.重構(gòu)手法概述
2.簡(jiǎn)要演示重構(gòu)的主要手法
第三部分 重構(gòu)實(shí)戰(zhàn)1一函數(shù)相關(guān)重構(gòu)
第三單元 函數(shù)重構(gòu)
內(nèi)容一:函數(shù)的重構(gòu)
1.函數(shù)的重構(gòu)
2.巨型函數(shù)的種類
a)項(xiàng)目列表式巨型方法
b)鋸齒狀巨型方法
3.分解函數(shù)
4.助手方法提取
5.利用自動(dòng)重構(gòu)對(duì)付巨型方法
6.利用手工重構(gòu)對(duì)付巨型方法
7.引入感知變量
8.函數(shù)依賴收集
9.分解助手方法和方法對(duì)象
10.通過(guò)案例介紹長(zhǎng)函數(shù)的重構(gòu)最佳實(shí)踐
第三單元 函數(shù)策略和技巧
內(nèi)容一: Refactoring Strategies & Tactics
1.Refactoring Strategy: Piecemeal Refactoring
2.Refactoring Strategy:Divide & Conquer
3.Refactoring Strategy:Narrowed Change
4.Refactoring Strategy:Parallel Change
5.Refactoring Strategy:Unified Methods
6.Refactoring Strategy:Evolved Target
7.Refactoring Strategy: Graceful Retreat
8.Refactoring Strategy: Gradual Cutover
9.Refactoring Strategy: Preparing for Change
10.Refactoring Tactic: Rejected Parameter
11.Refactoring Tactic: Caller Swap
12.Refactoring Tactic:Encapsulated Dependency
第四部分 重構(gòu)實(shí)戰(zhàn)2一類重構(gòu)第
四單元 類重構(gòu)

內(nèi)容一:重構(gòu)案例—該案例重點(diǎn) 巨大類的重構(gòu)
1.重構(gòu)大類
1.對(duì)象的職責(zé)重構(gòu)
2.職責(zé)的識(shí)別
a)方法分組
b)觀察隱藏方法
c)尋找可以更改的原因
d)尋找內(nèi)部關(guān)系
e)尋找主要職責(zé)
f)接口分離—接口隔離原則
3.提取類和接口
4.通過(guò)案例介紹如何重構(gòu)巨大的類
第五部分 重構(gòu)實(shí)戰(zhàn)3一重構(gòu)到模式
第五單元 重構(gòu)到模式
內(nèi)容一:案例---重構(gòu)設(shè)計(jì)方案引入設(shè)計(jì)模式
1.通過(guò)項(xiàng)目分析重構(gòu)到模式的手段
2.構(gòu)造Template Method
3.以Composite取代一/多之分
4.引入Null Object
5.用Adapter統(tǒng)一接口
6.用Fatory Method引入多態(tài)創(chuàng)建
5.通過(guò)案例介紹如何重構(gòu)原始設(shè)計(jì)方案,演示如何通過(guò)重構(gòu)導(dǎo)入設(shè)計(jì)模式

內(nèi)容二:案例---重點(diǎn)介紹重構(gòu)基本類型依賴和對(duì)應(yīng)模式
1.通過(guò)案例學(xué)習(xí)以下重構(gòu)到模式手段
2.以State取代狀態(tài)改變條件語(yǔ)句
3.以Strategy取代條件邏輯
4.以Composite取代隱含樹
5.以Interpreter取代隱式語(yǔ)言
6.轉(zhuǎn)移裝飾功能到Decorator
7.用Builder封裝Composite
8.重點(diǎn)學(xué)習(xí)案例的重構(gòu)到模式的過(guò)程

內(nèi)容三:案例---重點(diǎn)介紹重構(gòu)代碼重復(fù)和對(duì)應(yīng)模式
7.通過(guò)案例學(xué)習(xí)以下重構(gòu)到模式手段
8.構(gòu)造Template Method
9.以Composite取代一/多之分
10.引入Null Object
11.用Adapter統(tǒng)一接口
12.用Fatory Method引入多態(tài)創(chuàng)建
13.重點(diǎn)學(xué)習(xí)案例的重構(gòu)到模式的過(guò)程

內(nèi)容四:案例---重點(diǎn)介紹重構(gòu)代碼過(guò)長(zhǎng)/過(guò)大的類/方法和對(duì)應(yīng)模式
1.轉(zhuǎn)移聚集操作到Vistor
2.以Strategy取代條件邏輯
3.以Command取代條件調(diào)度程序
4.轉(zhuǎn)移聚集操作到Collecting Parameter
5.重點(diǎn)學(xué)習(xí)案例的重構(gòu)到模式的過(guò)程
第六部分 重構(gòu)實(shí)戰(zhàn)4一模塊/組件重構(gòu)
第六單元 模塊重構(gòu)
內(nèi)容一:模塊重構(gòu)
1.優(yōu)良的系統(tǒng)設(shè)計(jì)意味著我們把系統(tǒng)分割成了一個(gè)個(gè)可單獨(dú)部署的組件,單獨(dú)部署意味著如果更改了一個(gè)組件,我們也不需要重新部署其他組件。
2.組件和包 壞味道
3.模塊之間解耦
4.組件的內(nèi)聚性實(shí)踐
5.組件的依賴性實(shí)踐
6.企業(yè)應(yīng)用系統(tǒng)組件設(shè)計(jì)最佳實(shí)踐
7.分析某項(xiàng)目,演示模塊重構(gòu),如何在大型應(yīng)用系統(tǒng)進(jìn)行模塊重構(gòu)
第七部分 安全重構(gòu)--構(gòu)筑重構(gòu)測(cè)試體系
第七單元 單元測(cè)試-構(gòu)筑測(cè)試體系
內(nèi)容一:理解單元測(cè)試
1.理解單元測(cè)試 第一個(gè)單元測(cè)試
2.單元測(cè)試框架提供了什么功能
3.好的測(cè)試是什么樣子的
4.為什么要寫單元測(cè)試,為什么不寫單元測(cè)試
5.為什么要寫"好"的單元測(cè)試
6.分析真實(shí)項(xiàng)目,如何做單元測(cè)試, 已經(jīng)相關(guān)問(wèn)題

內(nèi)容二:構(gòu)筑測(cè)試體系
1.單元測(cè)試中的壞味道
2.讓測(cè)試容易被看懂的模式
3.讓測(cè)試容易維護(hù)的模式
4.讓測(cè)試被信得過(guò)的模式
5.重構(gòu)單元測(cè)試,改進(jìn)代碼設(shè)計(jì)
6.如何在集成與單元、黑盒或白盒、Mock和非Mock之間做選擇?
7.結(jié)合多個(gè)案例項(xiàng)目進(jìn)行分析,分析什么是好的單元測(cè)試
第七單元 重構(gòu)管理
內(nèi)容一:安全重構(gòu)
1.重構(gòu)的恐懼心里
2.重構(gòu)勇氣
3.安全重構(gòu)和祈禱式重構(gòu)
4.安全重構(gòu)保證
a)依賴編輯器
b)簽名保持
c)單一目標(biāo)
d)依賴編譯器
e)個(gè)人的能力
f)代碼審查
g)單元測(cè)試
h)驗(yàn)收測(cè)試
i)人工測(cè)試
5.通過(guò)案例如何保證重構(gòu)的正確性

活動(dòng)詳情

提交需求