「CI」為什么要持續(xù)集成

前言

??什么是持續(xù)集成,為什么要持續(xù)集成窗悯?本文對持續(xù)集成前后兩種開發(fā)實踐做了對比分析吞瞪,從而直觀的感受到持續(xù)集成的好處。

傳統(tǒng)的開發(fā)模式
傳統(tǒng)的開發(fā)模式.png

存在的問題

1.Bug總是在最后才出現(xiàn)养匈。

2.越到項目后期,問題越難解決都伪。

3.軟件交付時機無法保障呕乎。

4.程序經常需要變更。
某些項目中陨晶,程序會經常需要變更猬仁,特別是敏捷開發(fā)實踐者。

5.無效的等待變多先誉。
開發(fā)在等待集成其他人的模塊湿刽,測試人員在等待開發(fā)修復Bug,產品經理在等待新版本上線給客戶做演示谆膳,項目經理在等待其他人提交代碼叭爱。

6.用戶的滿足度低。


持續(xù)集成

什么是持續(xù)集成
??在軟件工程中漱病,持續(xù)集成(CI)是指將所有開發(fā)者的工作副本每天多次合并到主干的做法买雾。Grady Booch 在1991年的 Booch method 中首次命名并提出了 CI 的概念把曼,盡管在當時他并不主張每天多次集成。而 XP(Extreme programming漓穿,極限編程)采用了 CI 的概念嗤军,并提倡每天不止一次集成。

持續(xù)集成服務器
??持續(xù)集成服務器就是能夠采用自動化的手段晃危,來解放人的雙手叙赚,實現(xiàn)項目持續(xù)集成的工具。與之配套的軟件有TeamCity僚饭、Jenkins震叮、Go等。

持續(xù)集成的工作模式

持續(xù)集成的開發(fā)模式.png

持續(xù)集成的好處

1.解放了重復性勞動鳍鸵。
自動化部署工作可以解放集成苇瓣、測試、部署等重復性勞動偿乖,而機器集成的頻率明顯比手工高很多击罪。

2.更快地修復問題。
持續(xù)集成更早的獲取變更贪薪,更早的進入測試媳禁,更早的發(fā)現(xiàn)問題,解決問題的成本顯著下降画切。

3.更快的交付成果竣稽。
更早發(fā)現(xiàn)錯誤減少解決錯誤所需的工作量。集成服務器在構建環(huán)節(jié)發(fā)現(xiàn)錯誤可以及時通知開發(fā)人員修復霍弹。集成服務器在部署環(huán)節(jié)發(fā)現(xiàn)錯誤可以回退到上一版本丧枪,服務器始終有一個可用的版本。

4.減少手工的錯誤庞萍。
在重復性動作上,人容易犯錯忘闻,而機器犯錯的幾率幾乎為零钝计。

5.減少了等待時間。
縮短了從開發(fā)齐佳、集成私恬、測試、部署各個環(huán)節(jié)的時間炼吴,從而也就縮短了中間可以出現(xiàn)的等待時機本鸣。持續(xù)集成,意味著開發(fā)硅蹦、集成荣德、測試闷煤、部署也得以持續(xù)。

6.更高的產品質量涮瞻。
集成服務器往往提供代碼質量檢測等功能鲤拿,對不規(guī)范或有錯誤的地方會進行標致,也可以設置郵件和短信等進行警告署咽。

持續(xù)集成的最佳實踐

1.頻繁檢出代碼近顷。
有時候代碼沖突無可避免,頻繁檢出代碼宁否,可以讓本地的副本和代碼庫中的版本最小差異化窒升。

2.頻繁提交代碼。
與1的原理類似慕匠,頻繁提交代碼饱须,可以讓其他人檢出副本和代碼庫中的版本最小差異化。

3.減少分支絮重,回歸主干冤寿。
多個分支并行應及早將變更集成到主干中,避免同時維護軟件的多個版本青伤。

4.使用自動化構建督怜。
可以使用Maven、Ant等來實現(xiàn)自動化構建狠角,可以在構建過程中實現(xiàn)自動化測試号杠。前提是有寫單元測試用例。

5.提交測試丰歌。
在提交工作之前姨蟋,每個程序員必須本地集成所有代碼,做一個完整的構建和運行立帖,并通過所有的單元測試眼溶,這樣能減少集成測試在集成服務器上構建失敗的風險。

6.當前狀態(tài)對每個人都可見晓勇。
集成服務器在持續(xù)集成過程中發(fā)現(xiàn)問題應及時發(fā)送警告給相關的干系人堂飞。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绑咱,隨后出現(xiàn)的幾起案子绰筛,更是在濱河造成了極大的恐慌,老刑警劉巖描融,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铝噩,死亡現(xiàn)場離奇詭異,居然都是意外死亡窿克,警方通過查閱死者的電腦和手機骏庸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門毛甲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人敞恋,你說我怎么就攤上這事丽啡。” “怎么了硬猫?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵补箍,是天一觀的道長。 經常有香客問我啸蜜,道長坑雅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任衬横,我火速辦了婚禮裹粤,結果婚禮上,老公的妹妹穿的比我還像新娘蜂林。我一直安慰自己遥诉,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布噪叙。 她就那樣靜靜地躺著矮锈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪睁蕾。 梳的紋絲不亂的頭發(fā)上苞笨,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音子眶,去河邊找鬼瀑凝。 笑死,一個胖子當著我的面吹牛臭杰,可吹牛的內容都是我干的粤咪。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼渴杆,長吁一口氣:“原來是場噩夢啊……” “哼射窒!你這毒婦竟也來了?” 一聲冷哼從身側響起将塑,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蝌麸,沒想到半個月后点寥,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡来吩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年敢辩,在試婚紗的時候發(fā)現(xiàn)自己被綠了蔽莱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡戚长,死狀恐怖盗冷,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情同廉,我是刑警寧澤仪糖,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站迫肖,受9級特大地震影響锅劝,放射性物質發(fā)生泄漏。R本人自食惡果不足惜蟆湖,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一故爵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧隅津,春花似錦诬垂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至呢铆,卻和暖如春晦鞋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棺克。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工悠垛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人娜谊。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓确买,卻偏偏與公主長得像,于是被迫代替她去往敵國和親纱皆。 傳聞我的和親對象是個殘疾皇子湾趾,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,524評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)派草,斷路器搀缠,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • 我承認,你從未走進過我的詩行 經常近迁,我把相思當做一種 情志喂養(yǎng)艺普,怕它真有一天風干 我再無處,放牧我的思想 而你沉默...
    細雨煙嵐閱讀 287評論 2 3