在上一章中了解到如何對(duì)項(xiàng)目的配置進(jìn)行管理,這是項(xiàng)目開發(fā)的一個(gè)基礎(chǔ)步驟,對(duì)于團(tuán)隊(duì)的協(xié)作,版本的重現(xiàn)都是起很重要的作用的。在本章中繼續(xù)學(xué)習(xí)又一實(shí)踐——持續(xù)集成,顧名思義就是讓項(xiàng)目在每次的提交之后都要進(jìn)行構(gòu)建,運(yùn)行,跑一遍測(cè)試。
為什么要使用持續(xù)集成
在很多軟件項(xiàng)目中,都有一個(gè)通病,即在開發(fā)過程中,應(yīng)用程序在相當(dāng)一段時(shí)間內(nèi)無法運(yùn)行。究其原因,沒有人有興趣在開發(fā)完成之前運(yùn)行整個(gè)應(yīng)用。所以他們會(huì)給后期的集成階段留出很長時(shí)間,這樣的集成活動(dòng)可能會(huì)持續(xù)很長時(shí)間,而最糟糕的則是沒有人知道到底要畫多長時(shí)間。
而持續(xù)集成就是解決這類問題的靈丹妙藥了,持續(xù)集成要求每當(dāng)有人提交代碼時(shí),就對(duì)整個(gè)應(yīng)用進(jìn)行構(gòu)建,并對(duì)其執(zhí)行全面的自動(dòng)化測(cè)試集合,若有失敗,則最快解決至可運(yùn)行狀態(tài)。這樣下來,在后期我們就可以花費(fèi)很少的時(shí)間將軟件交付給用戶。
實(shí)現(xiàn)持續(xù)集成
持續(xù)集成是一種實(shí)踐,而非工具。要在項(xiàng)目中實(shí)現(xiàn)持續(xù)集成,我們需要下面這些準(zhǔn)備工作。
1.版本控制
2.自動(dòng)化構(gòu)建
3.團(tuán)隊(duì)共識(shí)
4.一個(gè)基本的持續(xù)集成系統(tǒng)
并且也要遵循以下的實(shí)踐
1.頻繁提交
2.創(chuàng)建全面的自動(dòng)化套件
3.保持較短的構(gòu)建和測(cè)試流程
4.管理開發(fā)區(qū)
持續(xù)集成中需要注意
1.構(gòu)建失敗之后不要提交新的代碼
2.提交前在本地運(yùn)行所有的提交測(cè)試,或者讓持續(xù)集成服務(wù)器完成此事
3.等提交測(cè)試通過后再繼續(xù)工作
4.回家之前,構(gòu)建必須處于成功狀態(tài)
5.時(shí)刻準(zhǔn)備回滾上一個(gè)版本
6.在回滾之前要規(guī)定一個(gè)修復(fù)時(shí)間
7.不要將失敗的測(cè)試注釋掉
8.為自己導(dǎo)致的問題負(fù)責(zé)
9.測(cè)試驅(qū)動(dòng)開發(fā)
總結(jié)
可能這一章中的一些實(shí)踐之前使用過,在看得時(shí)候相對(duì)之前很好理解,收獲很大,疑惑相對(duì)就變少了。
我的收獲
- 持續(xù)集成可以有效減少項(xiàng)目周期
- 持續(xù)集成也是有相應(yīng)的軟件
- 測(cè)試驅(qū)動(dòng)開發(fā),Test First
我的疑惑
- 當(dāng)團(tuán)隊(duì)中人數(shù)眾多時(shí),不停push,pull 合并分支,解決沖突,這樣會(huì)不會(huì)降低生產(chǎn)效率