2.2 CI的价值是什么
从大的方面来说,CI的价值在于:
减少风险。
减少重复过程。
在任何时间、任何地点生成可部署的软件。
增强项目的可见性。
对开发团队的软件产品建立起更强大的产品信心。
让我们来看一下这些原则的意义以及它们带来的价值。
减少风险
在一天中进行多次集成,您可以减少项目的风险。这样做有利于检查缺陷,了解软件的健康状况,减少假定。
缺陷的检测和修复变得更快:因为CI每天多次进行集成并执行测试和审查,所以在缺陷引入时(例如,在代码签入版本控制库时)就发现它们的可能性更大,而不必等到以后的测试中才发现。
软件的健康程度可以测量:通过在自动集成过程中包含持续的测试和审查,这些软件产品的健康属性,如复杂度等,可以随时追踪。
减少假定:通过在一个干净的环境中不断使用相同的过程和脚本重复构建和测试软件,您可以减少不实的假定(例如,您是否依赖第三方的库或环境变量)。
CI提供了一张安全网,降低了缺陷进入代码中的风险。下面是CI缓解的一些风险。我们将在下一章中讨论这些风险和其他风险。
没有一致的、可部署的软件。
很晚才发现缺陷。
低品质的软件。
缺少项目可见性。
减少重复过程
减少重复的过程可以节省时间、费用和工作量。这听起来很简单,不是吗?这些重复的过程可能在所有项目活动中发生,包括代码编译、数据库集成、测试、审查、部署和反馈。通过自动化的CI,您就更加能够确保:
每次都以相同的方式执行该过程。
遵守有序的过程。例如,您可能在执行测试之前进行审查(静态分析)—这写在构建脚本之中。
每次将变更提交到版本控制库中,就会执行这些过程。
这有利于:
减少重复过程的劳动,让人们有时间做更多的需要动脑筋的、更高价值的工作。
通过对一些重要过程(如测试和数据库集成)自动化,克服项目中某些成员对实现改进的抵制。
生成可部署的软件
CI可以让您在任何时间发布可以部署的软件。从外界来看,这是CI最明显的好处。我们可以对改进软件品质和减少风险说起来滔滔不绝,但对于“门外汉”(如客户或用户)来说,可以部署的软件是最实际的资产。这一点的重要性不管怎样强调都不过分。利用CI,您可以经常地对源代码进行一些小改动,并将这些改动与其他代码进行集成。如果出现问题,项目成员会接到通知,软件会立即得到修复。不采用CI实践的项目可能需要等到交付之前才对软件进行集成和测试。这可能会延迟产品的发布,延迟或不能修复某些缺陷,在急于完成任务时引入新的缺陷,最后可能导致项目失败。
增强项目的可见性
CI让我们能够注意到趋势并进行有效的决策,它有助于提供创新和改进的勇气。如果没有真实或最新的数据来支持决策,项目就会遇到麻烦,所以每个人都会提出他们最好的猜测。通常,项目成员通过手工收集这些信息,这样增加了工作负担,也很耗时。结果常常使信息从来就不会收集。CI可以带来如下的积极效果:
有效的决策:CI系统可以对当前的构建状态和品质指标提供及时的信息。某些CI系统也可以显示缺陷率和功能完成情况的统计。
注意到趁势:由于经常利用CI系统进行集成,我们就能够注意到一些趁势,如构建成功或失败、总体品质以及其他相关的项目信息。
建立起更强大的产品信心
总的来说,有效地应用CI实践能够在开发软件产品时带来更大的信心。对于每一次构建,团队成员都知道软件会通过测试验证其行为,项目的编码标准和设计标准得到遵守,得到的结果是在功能上可测试的产品。
如果没有频繁的集成,某些团队成员可能会感到压抑,因为他们不知道代码的修改造成的影响。因为CI系统能够在出问题时发出通知,开发者和其他团队成员在进行修改时就更有信心。因为CI提倡所有软件资产构建时使用单一的来源,大家在准确性方面也更有信心。
| 回书目 上一节 下一节 |
|
· 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. · 网络工程师模拟测试获.. · 全国计算机软考考试指.. |
· 3月24日WCF聊天活动 积.. · 全国计算机等级考试四.. · 软件项目估计:第2版 · 系统分析师基础知识自.. · 构建可扩展的Web站点的.. · 2008年全国计算机等级.. |
|
||||
| · 技术人求职简历完备手册 · 华为员工自杀频频拷问.. · 视频访谈:网管员如何踏.. · 首届中国IT工程师生态.. · 思科全球CEO钱伯斯第七.. · 北漂技术人90天求职纪实 · 2007年互联网大会 · 龙芯要做中国的“奔腾” |
· IPv6协议--拓展网络无.. · 国际文档格式标准开战 · 微软出价446亿美元收购.. · 贝恩资本携手华为22亿.. · Linux——从菜鸟到高手 · SOA 面向服务架构 · 2008年4月全国计算机等.. · 微软Forefront企业安全.. |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · SQL Server入门到精通 · 病毒查杀专题 |
· 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux防火墙 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · ADSL应用面面俱到 · 入侵防护系统(IPS)初探 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · iSCSI应用与发展 · RAID——磁盘阵列基础 · 病毒查杀专题 |
· 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 · PHP开发应用手册 · 中间件应用技术专题 · Linux防火墙 |
|||