曙海教學(xué)優(yōu)勢(shì)
我們的課程培訓(xùn)了大批受歡迎的實(shí)戰(zhàn)型工程師。大批企業(yè)與我們
建立了良好的合作關(guān)系。曙海培訓(xùn)的課程在業(yè)內(nèi)有著響亮的知名度。
秉承二十幾年積累的教學(xué)品質(zhì),本課程以真實(shí)項(xiàng)目實(shí)戰(zhàn)為導(dǎo)向,授課工程師將會(huì)與您分享設(shè)計(jì)的全流程及工具的綜合使用技巧、經(jīng)驗(yàn)。
第一篇: 編程是一種態(tài)度-------編程價(jià)值觀
代碼就是債務(wù) 內(nèi)容一:代碼是債務(wù)
代碼的認(rèn)識(shí)---代碼就是債務(wù)
代碼是債務(wù),越少越好
你擁有的代碼越多,添加新內(nèi)容所要付出的成本就越高
通過案例分析讓代碼庫盡可能小的方法:
盡可能創(chuàng)建通用的工具。
刪除不用的代碼或者特性。
確保項(xiàng)目模塊化,并分割成相互沒有關(guān)聯(lián)的子項(xiàng)目。
熟悉你經(jīng)常使用的代碼庫。
對(duì)代碼庫的規(guī)模時(shí)刻保持警惕,保持它是小而敏捷的。
通過國際研發(fā)中心電信計(jì)費(fèi)系統(tǒng)演示代碼是債務(wù)的思想,10多年國外研發(fā)團(tuán)隊(duì)設(shè)計(jì)與研發(fā)第一版本,目前幾百人在維護(hù)
通過項(xiàng)目演示通過重構(gòu)如何減少了一半的代碼,維護(hù)的人員的減少
項(xiàng)目的失敗可能歸咎于各種各樣的原因。一些項(xiàng)目因糟糕的需求而失敗,另一些則由于錢和時(shí)間超支了,還有少數(shù)單純是因?yàn)樵愀獾墓芾硭隆H绻覀兲骄科涓驹颍欠駮?huì)發(fā)現(xiàn)所有項(xiàng)目失敗的罪魁禍?zhǔn)资窃愀獾拇a呢?
Bob大叔堅(jiān)信糟糕的代碼所帶來的成本之大足夠讓一個(gè)項(xiàng)目失敗。
?
編程價(jià)值觀 內(nèi)容一:編程價(jià)值觀
編程的方法學(xué)
編程價(jià)值觀---溝通,簡單,靈活
優(yōu)秀代碼的評(píng)價(jià)標(biāo)準(zhǔn), 什么是高質(zhì)量編碼? 特征是什么?
軟件代碼的可讀性
代碼的可擴(kuò)展性
糟糕代碼的特征
劣質(zhì)代碼的代價(jià)
大師評(píng)價(jià)整潔代碼的標(biāo)準(zhǔn)
通過某項(xiàng)目代碼是演示糟糕的代碼,以及經(jīng)過重構(gòu)之后的代碼,進(jìn)行對(duì)此.
?
第二篇: 編程是一種技藝-------編程實(shí)踐篇
高質(zhì)量函數(shù) 內(nèi)容一:高質(zhì)量函數(shù)/過程
為什么需要函數(shù)
函數(shù)復(fù)雜度度量
函數(shù)圈復(fù)雜度以及度量
函數(shù)抽象層次-單一抽象層次原則SLAP(Single Level of Abstrction Principle)
函數(shù)實(shí)現(xiàn)模式之—組合函數(shù)(Composed Method)
萬惡之源—函數(shù)過長
函數(shù)第一原則:是要短小,函數(shù)第二原則:是還要短小,函數(shù)第三原則:是必須短小
函數(shù)重構(gòu)之道—抽取方法(Extract Method)和抽取對(duì)象函數(shù)
函數(shù)命名—怎樣取好的函數(shù)名
通過大量項(xiàng)目代碼分析,函數(shù)的遇到的各種問題,如何編程高質(zhì)量函數(shù)
容二:函數(shù)代碼重復(fù)
重復(fù)的危害
強(qiáng)加的重復(fù)/無意的重復(fù)/無耐心的重復(fù)/開發(fā)者之間的重復(fù)
不要重復(fù)自己DRY—Don't Repeat Yourself Principle
Make It Easy to Reuse(讓復(fù)用變得容易)
魔法數(shù)(Magic number)
重復(fù)性代碼(Duplicated Code)
接口不同的相似類(Alternative Classes with Different Interfaces)
系統(tǒng)分離關(guān)注點(diǎn)
系統(tǒng)架構(gòu)的基礎(chǔ)通用服務(wù)組件
通過某項(xiàng)目代碼是介紹重復(fù)編碼問題
演示研發(fā)過程之中的常見重復(fù)問題,以及如何解決
內(nèi)容三:函數(shù)參數(shù)
函數(shù)參數(shù)過長
最理想的參數(shù)數(shù)量是零,其次是一,再次是二,有足夠的理由才能使用三個(gè)以上參數(shù).
函數(shù)參數(shù)重構(gòu)之道-引入?yún)?shù)對(duì)象(introduce parameter object
函數(shù)參數(shù)的順序.
不要把程序參數(shù)當(dāng)做工作變量/臨時(shí)變量
函數(shù)參數(shù)模式-collecting parameter
函數(shù)返回值
通過大量項(xiàng)目代碼是函數(shù)參數(shù)問題
演示函參數(shù)的重構(gòu)
內(nèi)容四:變量
變量定義常見的錯(cuò)誤
變量的數(shù)據(jù)類型
變量的初始化原則
變量的作用域
變量的持續(xù)性
變量的綁定時(shí)間
數(shù)據(jù)類型和控制結(jié)構(gòu)之間的關(guān)系
變量的命名
全局變量
通過大量項(xiàng)目代碼演示變量相關(guān)問題
演示變量的注意事項(xiàng)
?
復(fù)雜表達(dá)式與循環(huán)語句 內(nèi)容一:條件表達(dá)式
IF/ELSE語句應(yīng)該如何編寫
Switch/Case語句應(yīng)該如何編寫
復(fù)雜條件表示式的危害
過分深層的縮進(jìn),或者“嵌套”,已經(jīng)困擾了計(jì)算機(jī)界達(dá)25年之久,并且至今仍然是產(chǎn)生混亂代碼的罪魁禍?zhǔn)字?
復(fù)雜表達(dá)式重構(gòu)之道—引入解釋變量/分解條件/抽取方法計(jì)算條件
表驅(qū)動(dòng)法-多級(jí)嵌套IF語句的必然之道
表驅(qū)動(dòng)法使用總則
某保險(xiǎn)項(xiàng)目表驅(qū)動(dòng)法應(yīng)用案例分析
通過大量項(xiàng)目代碼演示條件表達(dá)式編碼問題
復(fù)雜表達(dá)式的注意事項(xiàng),如何解決
內(nèi)容二:利用多態(tài)解決復(fù)雜表達(dá)式
面向?qū)ο蠖鄳B(tài)技術(shù)的新認(rèn)識(shí)
減少使用if語句,重構(gòu)到多態(tài)
以State/Strategy取代類型代碼
引入Null Object
以Command替換條件調(diào)度程序
轉(zhuǎn)移聚集操作到Visitor
轉(zhuǎn)移裝飾功能到Decorator
通過大量項(xiàng)目代碼演示多態(tài)可以解決的編程問題
內(nèi)容三:防止變異
防止變異-如何設(shè)計(jì)函數(shù),對(duì)象,子系.使其內(nèi)部的變化或不穩(wěn)定性對(duì)其他元素元素產(chǎn)生不良影響
接口,多態(tài),數(shù)據(jù)封裝、間接性和標(biāo)準(zhǔn)都是源于PV
開閉原則
數(shù)據(jù)驅(qū)動(dòng)(Data-Driven Design)編程
元數(shù)據(jù)或反射驅(qū)動(dòng)(Meta-data or Reflective )編程
復(fù)雜業(yè)務(wù)邏輯-解釋器驅(qū)動(dòng)編程
案例—通過電信項(xiàng)目介紹如何設(shè)計(jì)應(yīng)對(duì)變化
通過大量項(xiàng)目代碼演示多態(tài)可以解決的編程問題
內(nèi)容四:循環(huán)控制
選擇循環(huán)的種類
循環(huán)控制
循環(huán)的創(chuàng)建-有內(nèi)向外
循環(huán)與數(shù)組
遞歸
Goto語句
控制結(jié)構(gòu)與復(fù)雜度
案例—通過電信項(xiàng)目介紹如何設(shè)計(jì)應(yīng)對(duì)變化
通過大量項(xiàng)目代碼演示多態(tài)可以解決的編程問題
?
高質(zhì)量類設(shè)計(jì)與編碼 內(nèi)容一:類基礎(chǔ)-數(shù)據(jù)抽象類型(Abstract Data Types)
類的基礎(chǔ):抽象數(shù)據(jù)類
需要用到ADT的場景
使用ADT的益處
基本類型依賴壞味道
數(shù)據(jù)泥團(tuán)壞味道
案例—通過電信項(xiàng)目介紹數(shù)據(jù)的抽象
通過大量項(xiàng)目代碼演示數(shù)據(jù)抽象類型解決的問題
內(nèi)容二:數(shù)據(jù)封裝
數(shù)據(jù)封裝
數(shù)據(jù)的訪問
類的封裝
通過大量項(xiàng)目代碼演示數(shù)據(jù)封裝
內(nèi)容三:面向?qū)ο笤O(shè)計(jì)與編程核心----職責(zé)分配
單一職責(zé)原則
RDD-職責(zé)驅(qū)動(dòng)的面向?qū)ο笤O(shè)計(jì)方法
內(nèi)容四:面向?qū)ο蟮木幊?br/>
上帝類/過大的類--違反單一職責(zé)
依戀情結(jié)-一個(gè)方法視乎過于強(qiáng)調(diào)處理其他類的數(shù)據(jù),而不是處理自己的數(shù)據(jù)
發(fā)散式改變
散彈式修改
消息鏈
中間人
不當(dāng)?shù)木o密性
案例—通過電信項(xiàng)目介紹OOP
?
第三篇: 編程是一種習(xí)慣-------管理實(shí)踐篇
代碼改善 內(nèi)容一:代碼重構(gòu)
重構(gòu)必然性
實(shí)際重構(gòu)遇到的4大問題
如何發(fā)現(xiàn)重構(gòu)點(diǎn)
如何去重構(gòu)(重構(gòu)方式)
如何知道重構(gòu)何止截止
如何保證重構(gòu)的正確性
介紹常見的重構(gòu)技術(shù)
重構(gòu)到模式的目錄
內(nèi)容二:代碼測(cè)試
代碼測(cè)試
代碼測(cè)試的技巧集錦
代碼測(cè)試的典型錯(cuò)誤
改善測(cè)試過程
內(nèi)容三:代碼調(diào)試
代碼調(diào)試
尋找代碼缺陷
調(diào)試的心里因素
調(diào)試工具
內(nèi)容四:修改遺留項(xiàng)目代碼的藝術(shù)
必須修改遺留的代碼起因
遺留代碼修改危險(xiǎn)事項(xiàng)
如何對(duì)依賴代碼做測(cè)試
依賴代碼的感知與分離
依賴代碼修改的接縫技術(shù)
修改依賴代碼的工具
降低風(fēng)險(xiǎn)的措施
接依賴技術(shù)
?
代碼管理 內(nèi)容一:代碼質(zhì)量度量
代碼質(zhì)量的度量
業(yè)界其他度量標(biāo)準(zhǔn)
通過分析多個(gè)實(shí)際項(xiàng)目,分別度量相關(guān)是否標(biāo)準(zhǔn)
內(nèi)容二:代碼靜態(tài)分析工具
代碼靜態(tài)分析工具概述
以Java語言代碼靜態(tài)分析工具為例介紹
CheckStyle:用于編碼標(biāo)準(zhǔn)
PMD 的 CPD:幫助發(fā)現(xiàn)代碼重復(fù)
Coverlipse:測(cè)量代碼覆蓋率
JDepend:提供依賴項(xiàng)分析
Metric:有效地查出復(fù)雜度
其他語言相關(guān)代碼靜態(tài)分析工具
通過案例演示工具在項(xiàng)目之中的應(yīng)用
內(nèi)容三:代碼評(píng)審
代碼評(píng)審前期準(zhǔn)備
代碼評(píng)審的代碼量
代碼評(píng)審的檢查表
代碼評(píng)審的總結(jié)與學(xué)習(xí)
內(nèi)容四:代碼管理
結(jié)合國內(nèi)多家研發(fā)中心的代碼管理思路分享
代碼質(zhì)量體系的建立
?
?
?