在软件的编译发布的过程中,经常能够看到CI、CD这样的词语。其实他们是专业的缩写短语,这里介绍下他们的概念和区别。
敏捷软件开发
敏捷软件开发,英文全称:Agile software development,是从1990年代开始逐渐引起广泛关注的新型软件开发方式,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。
CI:持续集成(CONTINUOUS INTEGRATION)
基本概念
CI的全称是Continuous Integration,表示持续集成。
在CI环境中,开发人员将会频繁地向主干提交代码。这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证。
持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警。
需要具备的条件
- 团队需要为每个新功能、代码改进、或者问题修复创建自动化测试用例。
- 你需要一个持续集成服务器,它可以监控代码提交情况,对每个新的提交进行自动化测试。
- 研发团队需要尽可能快的提交代码,至少每天一次提交。