代碼質(zhì)量提高培訓(xùn)
?
代碼質(zhì)量提高培訓(xùn)
課題
內(nèi)容
第一單元
規(guī)范編碼與優(yōu)劣代碼的判定
內(nèi)容一:成為卓越的程序員----代碼能力及關(guān)鍵因素
軟件的核心是什么(市場?管理?技術(shù)?需求?銷售?測試?)
做一個優(yōu)秀的程序員并不簡單!
低頭看路與抬頭看天——理論與實踐的結(jié)合
優(yōu)秀代碼的評價標(biāo)準(zhǔn)
優(yōu)秀的代碼,而不僅是可以運行的代碼
劣質(zhì)代碼的代價
內(nèi)容二:編碼規(guī)范
通用的編碼規(guī)范
C/C++/java/C#/編碼規(guī)范
內(nèi)容三:案例—通過實際項目演示優(yōu)秀的代碼及不佳代碼
介紹項目背景,展現(xiàn)設(shè)計細(xì)想
閱讀代碼指出代碼壞癥狀
重構(gòu)為優(yōu)秀的代碼,介紹重構(gòu)的思想及代碼對比
第二單元
整潔代碼之道
內(nèi)容一:代碼的壞味道—代碼的質(zhì)量底線
代碼壞味道概述
代碼壞味道——程序員與醫(yī)生的區(qū)別
代碼壞味道----低級篇(重復(fù)的代碼、過長的函數(shù)、過大的類、過長的參數(shù)列表、發(fā)散式變化、分散的修改)
代碼壞味道----中級篇(偽面向?qū)ο蟮恼{(diào)用、數(shù)據(jù)泥團(tuán)、基本類型的誤用、switch-case結(jié)構(gòu)的誤用、平行繼承體系、過薄的類、只有局部意義的成員變量)
代碼壞味道----高級篇(過度耦合的消息鏈、過薄的中間對象、緊耦合類、相似的類、只有數(shù)據(jù)的類、濫用類的繼承關(guān)系)
通過案例,讓學(xué)員尋找代碼壞味道
可以根據(jù)客戶現(xiàn)在的項目作為案例進(jìn)行現(xiàn)場分析,找出相應(yīng)的代碼壞味道
內(nèi)容二:某項目分析----重點了解現(xiàn)實項目代碼的充斥大量壞味道
介紹項目需求情況,閱讀現(xiàn)有代碼指出代碼壞癥狀
不看不知道,代碼到底有多爛—觸目驚心的代碼
通過重構(gòu)逐步改善代碼質(zhì)量
本案例學(xué)習(xí)多種代碼的整潔方案
第三單元
代碼質(zhì)量度量
內(nèi)容一:代碼質(zhì)量度量
代碼質(zhì)量的度量
通過分析多個實際項目,分別度量相關(guān)是否標(biāo)準(zhǔn)
內(nèi)容二:代碼評審
代碼評審前期準(zhǔn)備
代碼評審的代碼量
代碼評審的檢查表
代碼評審的總結(jié)與學(xué)習(xí)
通過案例分析如何做好代碼評審
第四單元
如何達(dá)到優(yōu)秀的設(shè)計
內(nèi)容一:什么是好的設(shè)計以及如何預(yù)先設(shè)計實現(xiàn)
什么是好的設(shè)計和衡量的手段
可擴(kuò)展性(Extensibility)容易添加新的功能. 結(jié)合案例,通過那些手段如何實現(xiàn)該目標(biāo)
靈活性(Flexibility)代碼修改平穩(wěn)地發(fā)生. 結(jié)合案例,通過那些手段如何實現(xiàn)該目標(biāo)
可插入性(Pluggability)容易將一個類抽出去,同時將另一個有同樣接口的類加入進(jìn)來. 結(jié)合案例,通過那些手段如何實現(xiàn)該目標(biāo)
軟件的變化分析---發(fā)現(xiàn)變化/封裝變化/隔離變化
分析真實項目,如何預(yù)先設(shè)計,給我們哪些啟示,我們可以學(xué)習(xí)到什么
內(nèi)容二:代碼設(shè)計中的通用模式(GRASP模式)
什么是GRASP設(shè)計原則
信息專家模式和應(yīng)用場景,以及案例分析
創(chuàng)建者模式和應(yīng)用場景,以及案例分析
創(chuàng)建者模式和應(yīng)用場景,以及案例分析
高內(nèi)聚/低耦合模式和應(yīng)用場景,以及案例分析
控制者模式和應(yīng)用場景,以及案例分析
多態(tài)/純虛構(gòu)模式和應(yīng)用場景,以及案例分析
間接/保護(hù)變量模式和應(yīng)用場景,以及案例分析
分析某個具體項目,如何設(shè)計重構(gòu),給我們哪些啟示,我們可以學(xué)習(xí)到什么
內(nèi)容四:案例—某項目設(shè)計思路分析
案例情況
演示如何發(fā)現(xiàn)設(shè)計壞味道,以及如何重構(gòu)
?
?
?
?
?
?
?
?
?
?
???
?
?
?
?
?