「Continuous_integration, CI」为何要持续集成?

前言  

什么是持续集成,为何要持续集成?本文对持续集成先后两种开发实践作了对比分析,从而直观的感觉到持续集成的好处。程序员

在说持续集成以前,先说一下传统的开发模式:编程

传统模式:

传统模式过程以下:服务器

传统的开发模式存在的问题:工具

1.Bug老是在最后才出现。单元测试

2.越到项目后期,问题越难解决。测试

3.软件交付时机没法保障。blog

4.程序常常须要变动。
某些项目中,程序会常常须要变动,特别是敏捷开发实践者。开发

5.无效的等待变多。
开发在等待集成其余人的模块,测试人员在等待开发修复Bug,产品经理在等待新版本上线给客户作演示,项目经理在等待其余人提交代码。rem

6.用户的知足度低。部署

持续集成

什么是持续集成? 

在软件工程中,持续集成(CI)是指将全部开发者的工做副本天天屡次合并到主干的作法。Grady Booch 在1991年的 Booch method 中首次命名并提出了 CI 的概念,尽管在当时他并不主张天天屡次集成。而 XP(Extreme programming,极限编程)采用了 CI 的概念,并提倡天天不止一次集成。

持续集成服务器:
持续集成服务器就是可以采用自动化的手段,来解放人的双手,实现项目持续集成的工具。与之配套的软件有TeamCity、Jenkins、Go等。

持续集成的工做模式:

 

持续集成的好处:

1.解放了重复性劳动。
自动化部署工做能够解放集成、测试、部署等重复性劳动,而机器集成的频率明显比手工高不少。

2.更快地修复问题。
持续集成更早的获取变动,更早的进入测试,更早的发现问题,解决问题的成本显著降低。

3.更快的交付成果。
更早发现错误减小解决错误所需的工做量。集成服务器在构建环节发现错误能够及时通知开发人员修复。集成服务器在部署环节发现错误能够回退到上一版本,服务器始终有一个可用的版本。

4.减小手工的错误。
在重复性动做上,人容易犯错,而机器犯错的概率几乎为零。

5.减小了等待时间。
缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间能够出现的等待时机。持续集成,意味着开发、集成、测试、部署也得以持续。

6.更高的产品质量。
集成服务器每每提供代码质量检测等功能,对不规范或有错误的地方会进行标致,也能够设置邮件和短信等进行警告。


持续集成的最佳实践:
1.频繁检出代码。
有时候代码冲突无可避免,频繁检出代码,可让本地的副本和代码库中的版本最小差别化。


2.频繁提交代码。
与1的原理相似,频繁提交代码,可让其余人检出副本和代码库中的版本最小差别化。


3.减小分支,回归主干。
多个分支并行应及早将变动集成到主干中,避免同时维护软件的多个版本。


4.使用自动化构建。
可使用Maven、Ant等来实现自动化构建,能够在构建过程当中实现自动化测试。前提是有写单元测试用例。


5.提交测试。
在提交工做以前,每一个程序员必须本地集成全部代码,作一个完整的构建和运行,并经过全部的单元测试,这样能减小集成测试在集成服务器上构建失败的风险。

6.当前状态对每一个人均可见。集成服务器在持续集成过程当中发现问题应及时发送警告给相关的干系人。

相关文章
相关标签/搜索