|
第一單元
規(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ù)泥團、基本類型的誤用、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í)多種代碼的整潔方案
|
|
第四單元
如何達(dá)到優(yōu)秀的設(shè)計
|
內(nèi)容一:什么是好的設(shè)計以及如何預(yù)先設(shè)計實現(xiàn)
什么是好的設(shè)計和衡量的手段?
可擴展性(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)用場景,以及案例分析?
間接/保護變量模式和應(yīng)用場景,以及案例分析?
分析某個具體項目,如何設(shè)計重構(gòu),給我們哪些啟示,我們可以學(xué)習(xí)到什么
內(nèi)容四:案例—某項目設(shè)計思路分析
案例情況
演示如何發(fā)現(xiàn)設(shè)計壞味道,以及如何重構(gòu)
|