
作者:[美]Paul M. Duvall (保羅.M. 杜瓦爾)Steve Matyas (史蒂夫.邁耶斯) Andrew Glover(安德魯.格洛弗) 著,王海鵬 譯出版社:電子工業(yè)出版社出版時間:2012年06月
摘要:
主要包含 :構(gòu)建,集成,部署,測試,審查,文檔與反饋
第二章:引入集成
集成的價值
? ? ? ?減少風(fēng)險,減少重復(fù)工作,增加項目可度量性,隨時提供可用產(chǎn)品,增強(qiáng)開發(fā)人員對產(chǎn)品的信心
集成實踐內(nèi)容
? ? ? ?修改代碼后要及時向版本庫提示可編譯的代碼;自動化測試;及時修復(fù)構(gòu)建失敗的代碼;自動化審查代碼標(biāo)準(zhǔn);做到至少每日一次自動化構(gòu)建。
第三章:通過CI來減少風(fēng)險
1.缺少可部署的軟件
(ant定期編譯)
2.很晚才發(fā)現(xiàn)缺陷
(單元測試,自動化測試)
3.項目可見性差
(SMS,EMAIL通知相關(guān)人員)
4.低品質(zhì)的軟件
(編碼標(biāo)準(zhǔn)checkstyle/PMD/Findbug,架構(gòu)標(biāo)準(zhǔn) Jdepend)
四:及時構(gòu)建軟件
? ? ? ?構(gòu)建頻率要至少半小時以上,無需每分鐘,因項目基本上都不可能幾分鐘就構(gòu)建完成了。
五:持續(xù)數(shù)據(jù)庫集成 CDBI
1?.版本庫管理數(shù)據(jù)庫腳本要像源代碼一樣進(jìn)行管理,規(guī)劃好資源目錄
2.提供不同環(huán)境的執(zhí)行腳本,做到重建數(shù)據(jù)庫及數(shù)據(jù)
?3.測試存儲過程或函數(shù)
?4.多版本并行開發(fā)也是同樣道理
?5.DBA要成為開發(fā)中的一員,完成SQL性能優(yōu)化,腳本規(guī)范化等工作
六:測試
1?.將測試分組:單元、組件、系統(tǒng)、功能
?2.先執(zhí)行較快的測試:單元
?3.為缺陷編寫測試案例,防止相同錯誤再次出現(xiàn)
?4.一個測試用例使用一個斷言
?5.測試數(shù)據(jù)共享,可重復(fù)
七:審查
1?.人工和自動化審查互補(bǔ)
?2.審查編碼標(biāo)準(zhǔn),架構(gòu)分層,重復(fù)代碼
?3.降低代碼復(fù)雜度,CCN > 10不安全,降低圈度復(fù)雜度方法是《重構(gòu)》和增加測試案例
4?.重構(gòu)前要先編寫測試用例
?5.常用工具:javaNCSS,PMD,Checkstyle
?6.對象依賴:傳入耦合高的對象會造成破會,傳出耦合高的配件會遭到破會(JDepend)
?7.代碼覆蓋率工具:PMD-CPD,Simian,Cobertura,EMMA,Clover,jacoco
?8.通過代碼覆蓋率工具檢查代碼測試案例不足的功能(重要)
八:部署
?1.隨時隨地提供可運行的軟件
?2.最好有回滾到上個版本的能力
?3.生成報告,及時反饋
九:反饋
? ? ? ?在正確的時間,以正確的方式,將正確的信息,發(fā)送給正確的人
導(dǎo)圖輸出
