工程師
互聯(lián)網(wǎng)
自動化測試
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

軟件重構——C#版

zil

科陸公司 首席架構師

曾在華為和科陸公司擔任多年敏捷教練和架構師
擁有國家“系統(tǒng)架構設計師(高級)”和“系統(tǒng)分析師(高級)”兩項職業(yè)資格認證。
具有多年嵌入式軟件開發(fā)、設計和管理經(jīng)驗,曾在華為和科陸公司擔任高級軟件工程師、系統(tǒng)工程師、敏捷教練、CMMI設計組組長、事業(yè)部首席軟件架構師等職務。主要擅長敏捷實踐在各領域的應用,包括代碼持續(xù)優(yōu)化與重構,嵌入式C語言架構設計與自動化測試,C#、java語言架構設計與自動化測試。精通嵌入式操作系統(tǒng)uCOS在多個平臺的移植與運用開發(fā)。授課經(jīng)驗豐富,曾為沈陽飛利浦、南京西門子、武漢烽火等知名企業(yè),開展過架構設計相關的內(nèi)訓課程。

曾在華為和科陸公司擔任多年敏捷教練和架構師 擁有國家“系統(tǒng)架構設計師(高級)”和“系統(tǒng)分析師(高級)”兩項職業(yè)資格認證。 具有多年嵌入式軟件開發(fā)、設計和管理經(jīng)驗,曾在華為和科陸公司擔任高級軟件工程師、系統(tǒng)工程師、敏捷教練、CMMI設計組組長、事業(yè)部首席軟件架構師等職務。主要擅長敏捷實踐在各領域的應用,包括代碼持續(xù)優(yōu)化與重構,嵌入式C語言架構設計與自動化測試,C#、java語言架構設計與自動化測試。精通嵌入式操作系統(tǒng)uCOS在多個平臺的移植與運用開發(fā)。授課經(jīng)驗豐富,曾為沈陽飛利浦、南京西門子、武漢烽火等知名企業(yè),開展過架構設計相關的內(nèi)訓課程。

課程費用

6800.00 /人

課程時長

3

成為教練

課程簡介

1、以重構視角,剖析多家巨頭軟件公司的成敗興衰。揭示重構工作的重要性。
2、與敏捷管理結合,提供重構管理的策略與方式方法。
3、借助案例,展現(xiàn)重構步驟的最佳實踐。
4、重構的保證:自動化測試。
5、重構的基礎工作:尋找代碼的壞味道。
6、用多個實戰(zhàn)訓練的方式,由粗到細,講解類重構、函數(shù)重構、函數(shù)內(nèi)部重構3個層次要達成的重構目標,以及相關的重構技巧。

目標收益

1、隨著軟件越來越大,開發(fā)效率越來越低。需求變更需要多處代碼修改,并且極易引入Bug。
2、管理者不知道如何評判軟件內(nèi)部質量的優(yōu)劣,缺乏衡量標準的知識和相關工具的運用。
3、有經(jīng)驗的老員工,因為厭煩了枯燥的維護工作而離職。
4、程序員員希望改變代碼腐化的現(xiàn)狀,卻不知道如何入手。
5、項目開發(fā)人員缺乏設計原則的知識,開發(fā)的代碼只是為了完成功能,很少進行架構優(yōu)化。
6、軟件無法重用,每一個新項目幾乎都是一次重新開始。
7、由于代碼可讀性差,新員工無法接手遺留系統(tǒng)。并且軟件越維護越雜亂

培訓對象

培訓面向人群:使用面向對象語言的軟件架構師、軟件設計師、程序員、測試人員。

課程大綱

第一單元

重構的重要性

重構管理
該單元內(nèi)容主要面向公司管理人員。
通過分析巨頭軟件公司在代碼維護上的失敗經(jīng)驗,讓管理者認識到重構工作的重要性。
并提出相應的管理辦法。

1、開發(fā)效率問題
(1)大部分公司的現(xiàn)狀
(2)消失的巨頭公司
(3)代碼是怎么腐化變爛的
(4)代碼是債務,而不是資產(chǎn)
2、償還債務的辦法――重構與重寫
(1)重構與重新的區(qū)別
(2)為何要選擇重構而不是重寫?
3、重構管理
(1)重新認識代碼的內(nèi)部質量
(2)重構面臨的管理挑戰(zhàn)
重構的推行策略與方式
第二單元

重構對開發(fā)人員的意義

重構最佳實踐
從第二單元開始,授課內(nèi)容面向程序員。
通過案例,展示糟糕代碼對程序員工作情緒的影響,讓程序員產(chǎn)生主動重構的動力。
通過實戰(zhàn)訓練操作,向程序員說明重構的最佳實踐步驟。
并在實戰(zhàn)訓練的同時,介紹幾個重構相關工具的使用方法。

1、重構――從程序員自己做起
(1)從中興的案例說起
(2)寫出好代碼的目的
(3)代碼是寫給人讀的,而不是寫給機器跑的
(4)讓營地比你來時更干凈
2、重構的最佳實踐
(1)覓取重構點
(2)重構代碼
(3)自動化單元測試
3、重構相關工具
(1)單元測試工具
(2)測試覆蓋率工具
(3)打樁工具
(4)自動化重構工具
(5)自動化測試工具
第三單元

嗅出代碼的壞味道
介紹代碼的多種壞味道,為重構點指明方向。
學習使用代碼內(nèi)部質量檢測工具,讓覓取重構點的工作工具化。
學習使用自動化檢測工具,讓覓取重構點的工作自動化。

1、壞味道的分類
(1)重復的代碼
(2)含糊不清的命名
(3)方法相關的壞味道
(4)類相關的壞味道
(5)散彈式修改
(6)發(fā)散式變化
(7)不恰當?shù)谋┞?br/>(8)過多的注釋
(9)其他壞味道
2、“鼻子”麻木了怎么辦
代碼內(nèi)部質量檢測工具
3、沒時間檢測怎么辦
(1)自動化的測試和告警工具
(2)自動化檢測原理
第四單元

類重構技能
講解創(chuàng)建類的目的。引申出對象職責的概念,并通過實戰(zhàn)訓練講述職責劃分的技巧。
講授面向對象設計的5大設計原則。
詳細講解“單一職責原則”。
通過實戰(zhàn)訓練,傳授“依賴倒置原則”的使用。

1、為什么需要封裝類
(1)設計“類”概念的目的
(2)良好模塊和糟糕模塊的區(qū)別
(3)最少知道原則
(4)封裝相關的壞味道
2、對象職責概念
(1)對象職責概論
(2)對象職責的劃分技巧
3、面向對象設計的5大設計原則
(1)單一職責原則
(2)開閉原則
(3)里氏替換原則
(4)接口隔離原則
(5)依賴倒置原則
4、單一職責原則
(1)定義與案例
(2)職責的識別技巧
(3)職責相關的壞味道
5、依賴倒置原則
(1)定義
(2)案例
6、類重構技巧
(1)提煉抽象
(2)打樁測試
(3)分離組件(6個組包原則)
(4)組件內(nèi)部優(yōu)化
7、設計模式
(1)策略模式
(2)工廠模式
(3)MVP模式
(4)觀察者模式
(5)其他模式
第五單元

函數(shù)重構技能
該單元主要講解函數(shù)重構。函數(shù)的重構最主要的工作是函數(shù)抽取。
講授高質量函數(shù)的標準和助手函數(shù)的概念。
最后介紹VS2008自帶的C#重構工具,主要演示其中“提取方法”和“封裝字段”功能。

1、創(chuàng)建函數(shù)的理由
列舉多個創(chuàng)建函數(shù)的理由,避免程序中產(chǎn)生巨型函數(shù)。
2、高質量函數(shù)的三原則
(1)單一抽象層次原則
(2)單一職責原則
(3)短小原則
3、助手函數(shù)
(1)定義
(2)好處
4、自動化重構工具
學習VS2008內(nèi)置的重構工具。減少程序員抽取函數(shù)的工作量。
第六單元

函數(shù)內(nèi)部優(yōu)化
在上一單元的基礎上,本單元主要講解如何通過優(yōu)化函數(shù)內(nèi)部的代碼,增加代碼的可讀性、可維護性。

1、為你的函數(shù)取個好名字
(1)一些基本原則
(2)檢查方法
2、簡化表達式
(1)引入解釋性變量
(2)盡量少用邏輯非運算符
3、馴服深層嵌套
(1)使用衛(wèi)語句
(2)用switch-case語句,代替if-els
(3)表驅動法
4、消除魔鬼數(shù)字
5、優(yōu)化變量
(1)變量命名
(2)一個變量只做一件事
(3)控制變量的作用域
(4)縮短變量的存活時間
(5)減少控制標記
6、優(yōu)化循環(huán)
(1)循環(huán)的種類
(2)循環(huán)的選擇
(3)循環(huán)的危險性
(4)循環(huán)的重構
7、縮短參數(shù)列表
第七單元

維護遺留系統(tǒng)
課程的最后,介紹在無自動化測試用例保證的遺留系統(tǒng)中,如何進行保護性的開發(fā)和重構工作。并提出維護代碼的準則。

1、維護代碼的準則
首先做到不傷害。
2、修改代碼的藝術
(1)新生方法
(2)新生類
(3)外敷方法
(4)外敷類
第八單元

架構師的作用
1、設計者
(1)切分系統(tǒng)
(2)設計接口
(3)選用設計模式
2、教導者
(1)引導團隊
(2)修正偏離
加強學習
第一單元

重構的重要性

重構管理
該單元內(nèi)容主要面向公司管理人員。
通過分析巨頭軟件公司在代碼維護上的失敗經(jīng)驗,讓管理者認識到重構工作的重要性。
并提出相應的管理辦法。

1、開發(fā)效率問題
(1)大部分公司的現(xiàn)狀
(2)消失的巨頭公司
(3)代碼是怎么腐化變爛的
(4)代碼是債務,而不是資產(chǎn)
2、償還債務的辦法――重構與重寫
(1)重構與重新的區(qū)別
(2)為何要選擇重構而不是重寫?
3、重構管理
(1)重新認識代碼的內(nèi)部質量
(2)重構面臨的管理挑戰(zhàn)
重構的推行策略與方式
第二單元

重構對開發(fā)人員的意義

重構最佳實踐
從第二單元開始,授課內(nèi)容面向程序員。
通過案例,展示糟糕代碼對程序員工作情緒的影響,讓程序員產(chǎn)生主動重構的動力。
通過實戰(zhàn)訓練操作,向程序員說明重構的最佳實踐步驟。
并在實戰(zhàn)訓練的同時,介紹幾個重構相關工具的使用方法。

1、重構――從程序員自己做起
(1)從中興的案例說起
(2)寫出好代碼的目的
(3)代碼是寫給人讀的,而不是寫給機器跑的
(4)讓營地比你來時更干凈
2、重構的最佳實踐
(1)覓取重構點
(2)重構代碼
(3)自動化單元測試
3、重構相關工具
(1)單元測試工具
(2)測試覆蓋率工具
(3)打樁工具
(4)自動化重構工具
(5)自動化測試工具
第三單元

嗅出代碼的壞味道
介紹代碼的多種壞味道,為重構點指明方向。
學習使用代碼內(nèi)部質量檢測工具,讓覓取重構點的工作工具化。
學習使用自動化檢測工具,讓覓取重構點的工作自動化。

1、壞味道的分類
(1)重復的代碼
(2)含糊不清的命名
(3)方法相關的壞味道
(4)類相關的壞味道
(5)散彈式修改
(6)發(fā)散式變化
(7)不恰當?shù)谋┞?br/>(8)過多的注釋
(9)其他壞味道
2、“鼻子”麻木了怎么辦
代碼內(nèi)部質量檢測工具
3、沒時間檢測怎么辦
(1)自動化的測試和告警工具
(2)自動化檢測原理
第四單元

類重構技能
講解創(chuàng)建類的目的。引申出對象職責的概念,并通過實戰(zhàn)訓練講述職責劃分的技巧。
講授面向對象設計的5大設計原則。
詳細講解“單一職責原則”。
通過實戰(zhàn)訓練,傳授“依賴倒置原則”的使用。

1、為什么需要封裝類
(1)設計“類”概念的目的
(2)良好模塊和糟糕模塊的區(qū)別
(3)最少知道原則
(4)封裝相關的壞味道
2、對象職責概念
(1)對象職責概論
(2)對象職責的劃分技巧
3、面向對象設計的5大設計原則
(1)單一職責原則
(2)開閉原則
(3)里氏替換原則
(4)接口隔離原則
(5)依賴倒置原則
4、單一職責原則
(1)定義與案例
(2)職責的識別技巧
(3)職責相關的壞味道
5、依賴倒置原則
(1)定義
(2)案例
6、類重構技巧
(1)提煉抽象
(2)打樁測試
(3)分離組件(6個組包原則)
(4)組件內(nèi)部優(yōu)化
7、設計模式
(1)策略模式
(2)工廠模式
(3)MVP模式
(4)觀察者模式
(5)其他模式
第五單元

函數(shù)重構技能
該單元主要講解函數(shù)重構。函數(shù)的重構最主要的工作是函數(shù)抽取。
講授高質量函數(shù)的標準和助手函數(shù)的概念。
最后介紹VS2008自帶的C#重構工具,主要演示其中“提取方法”和“封裝字段”功能。

1、創(chuàng)建函數(shù)的理由
列舉多個創(chuàng)建函數(shù)的理由,避免程序中產(chǎn)生巨型函數(shù)。
2、高質量函數(shù)的三原則
(1)單一抽象層次原則
(2)單一職責原則
(3)短小原則
3、助手函數(shù)
(1)定義
(2)好處
4、自動化重構工具
學習VS2008內(nèi)置的重構工具。減少程序員抽取函數(shù)的工作量。
第六單元

函數(shù)內(nèi)部優(yōu)化
在上一單元的基礎上,本單元主要講解如何通過優(yōu)化函數(shù)內(nèi)部的代碼,增加代碼的可讀性、可維護性。

1、為你的函數(shù)取個好名字
(1)一些基本原則
(2)檢查方法
2、簡化表達式
(1)引入解釋性變量
(2)盡量少用邏輯非運算符
3、馴服深層嵌套
(1)使用衛(wèi)語句
(2)用switch-case語句,代替if-els
(3)表驅動法
4、消除魔鬼數(shù)字
5、優(yōu)化變量
(1)變量命名
(2)一個變量只做一件事
(3)控制變量的作用域
(4)縮短變量的存活時間
(5)減少控制標記
6、優(yōu)化循環(huán)
(1)循環(huán)的種類
(2)循環(huán)的選擇
(3)循環(huán)的危險性
(4)循環(huán)的重構
7、縮短參數(shù)列表
第七單元

維護遺留系統(tǒng)
課程的最后,介紹在無自動化測試用例保證的遺留系統(tǒng)中,如何進行保護性的開發(fā)和重構工作。并提出維護代碼的準則。

1、維護代碼的準則
首先做到不傷害。
2、修改代碼的藝術
(1)新生方法
(2)新生類
(3)外敷方法
(4)外敷類
第八單元

架構師的作用
1、設計者
(1)切分系統(tǒng)
(2)設計接口
(3)選用設計模式
2、教導者
(1)引導團隊
(2)修正偏離
加強學習

課程費用

6800.00 /人

課程時長

3

預約體驗票 我要分享

近期公開課推薦

近期公開課推薦

活動詳情

提交需求