Martin Fowler 和 Kent Beck 首次提出 Continuous Integration (簡稱CI):
持續(xù)集成是一種軟件開發(fā)實踐:許多團(tuán)隊頻繁地集成他們的工作,每位成員通常進(jìn)行日常集成接癌,進(jìn)而每天會有多種集成。每個集成會由自動的構(gòu)建(包括測試)來盡可能快地檢測錯誤茅糜。許多團(tuán)隊發(fā)現(xiàn)這種方法可以顯著的減少集成問題并且可以使團(tuán)隊開發(fā)更加快捷猿推。
持續(xù)集成,讓很多開發(fā)團(tuán)隊又 「 愛 」 又 「 恨 」 匪凉。愛枪眉,在于整個流程對項目的交付價值大有裨益,盡最大可能地減少不必要的加班再层;恨瑰谜,在于成本過大,部署的困難树绩、工程文化的隔閡萨脑。
無論你是堅定的持續(xù)集成擁護(hù)者,中立派饺饭,甚至是 CI 反對者渤早,作為一個高效的開發(fā)工具,持續(xù)集成是一個非常重要特殊的存在瘫俊。通過這篇文章鹊杖,我們來看看持續(xù)集成的好處有哪些。
“盡早暴露問題扛芽,把握開發(fā)節(jié)奏”
在團(tuán)隊開發(fā)中骂蓖,問題暴露的越早,修復(fù)代碼的成本越低川尖,成功部署的勝算就越大登下。持續(xù)集成高頻率地編譯、測試、審查被芳、部署項目代碼缰贝,這其中代碼集成是主要的風(fēng)險來源。要想規(guī)避這個風(fēng)險畔濒,只有提早集成剩晴,持續(xù)而有規(guī)律的集成,以此來確保當(dāng)前代碼庫的質(zhì)量侵状,把握開發(fā)的進(jìn)程和節(jié)奏赞弥。
當(dāng)然發(fā)現(xiàn)問題代碼,也不要一味地墜入快速的簡單修復(fù)之中趣兄,要投入時間和精力保持代碼的整潔绽左、敞亮。
很明顯的一點诽俯,使用持續(xù)集成后妇菱,程序員們提交代碼也會變得更加小心謹(jǐn)慎。想想應(yīng)該沒人樂意讓其他同事不停地見到自己的分支上 CI 失敗的通知郵件吧:)
“避免重復(fù)操作暴区,讓流程自動化”
工具環(huán)境的滯后闯团,加上工作的重復(fù)枯燥,讓開發(fā)者對寫程序失去新鮮感仙粱。
在持續(xù)集成過程房交,一步一步的編譯、測試伐割、審查候味、部署,牽扯大量重復(fù)的工作隔心。搭建持續(xù)集成環(huán)境白群,可以讓開發(fā)人員不再需要手動地 checkout 代碼,節(jié)省大量的時間和避免不必要的壓力硬霍,把精力放在更多有價值的事情上帜慢,這樣也可以形成良性的循環(huán)。
flow.ci 是融入了 workflow 機制的持續(xù)集成(CI)服務(wù)唯卖,也可以理解為自動化流程平臺粱玲,除了集成代碼、編譯拜轨、測試之外抽减,還可以集成常用的工具、靈活自定義流程橄碾。工程師只需要專注寫代碼卵沉,其他的 build, test, deploy 都可以交給 flow.ci 來完成颠锉。一切運轉(zhuǎn)起來只需要1分鐘!
“保持隨時部署,簡化發(fā)布流程”
每日高頻率的集成保證了項目隨時處于可部署運行的狀態(tài)偎箫,如果沒有持續(xù)集成木柬,項目發(fā)布之前將不得不手動地集成皆串,然后花費大量精力修復(fù)集成問題淹办,弄的團(tuán)隊成員疲憊不堪。
使用持續(xù)集成恶复,幫助我們跨越頻繁部署的障礙怜森。大家都知道,只有保持頻繁部署谤牡,讓用戶看到產(chǎn)品的新特性副硅, 才能不斷地磨合優(yōu)化構(gòu)建和發(fā)布流程,讓反饋周期更短更有效翅萤。
flow.ci 包含各種代碼質(zhì)量檢測分析和生成報告的插件恐疲,可以輕松地查看項目的測試結(jié)果。
“增強團(tuán)隊信心套么,建立工程師文化”
無論什么樣的工程師培己,都會對存在大量 bug 的代碼產(chǎn)生恐懼心理,這就是心理學(xué)上的的 Broken Windows 綜合癥(Broken Windows syndrome)胚泌。CI 可以有效防止破窗綜合癥省咨,讓開發(fā)團(tuán)隊一點點積累起對產(chǎn)品的信心,對使用技術(shù)的保持成就感玷室。
與此同時零蓉,持續(xù)集成讓每個人都能看到良好的界面和視圖來了解項目的成熟度,讓所有人都知道正在發(fā)生什么穷缤。也許更容易增強開發(fā)信心敌蜂,培養(yǎng)團(tuán)隊良好的工程文化,齊心協(xié)力向目標(biāo)前進(jìn)津肛。
除了上面我們所總結(jié)的 CI 的好處章喉,APIUMTECH 的在Top benefits of continuous integration文章中有一張圖說非常全面,分享給大家:
作為編碼規(guī)范的度量尺快耿、代碼質(zhì)量的把關(guān)者囊陡、項目健康的測量儀,CI 可以做的事情還有很多掀亥。歡迎分享你的觀點撞反。