- 论坛徽章:
- 1
|
Martin Fowler & Matthew Foemmel 著透明译
. Copyright Martin Fowler, all rights reserved
原文链接: http://martinfowler.com/articles/continuousIntegration.html
译者语: 2002 年1 月23 日, 我们很荣幸的在UMLCHINA 组织的网上交流中聆听了Martin Fowler先生的教诲。在交流中, Martin Fowler向所有中国软件开发者推荐了这篇文章: Continuous Integration( 《持续集成》) 。初读之下,我便感觉到了它的分量, AgileChina 的林星也称赞: “ 其中的思想非常的好, 大师就是大师。” 然后, 用了一周的时间,我终于把这篇文章翻译出来, 以飨读者。 由于这是Fowler 先生送给全体中国软件开发者的礼物, 所以我绝对不敢独占。任何人都可以在任何地方随意转载本文, 但是在转载时请保持本文完整性— — 包括标题、版权声明、原文链接、译者语… … 总之, 请不要在转载的时候做任何改动或增删。另外, 如果能在转载的时候顺手给我一个mail, 我会更加高兴。
下面, 请开始欣赏这篇精彩的文章。
在任何软件开发过程中都有一个重要的部分: 得到可靠的软件创建(build ) 版本。尽管知道创建的重要性, 但是我们仍然会经常因为创建失败而惊讶不已。在这篇文章里, 我们将讨论Matt ( MatthewFoemmel ) 在ThoughtWorks 的一个重要项目中实施的过程, 这个过程在我们的公司里日益受到重视。它强调完全自动化的、可重复的创建过程, 其中包括每天运行多次的自动化测试。它让开发者可以每天进行系统集成, 从而减少了集成中的问题。
ThoughtWorks公司已经开放了CruiseControl软件的源代码, 这是一个自动化持续集成的工具。此外, 我们还提供CruiseControl、Ant和持续集成方面的顾问服务。如果需要更多的信息, 请与JoshMackenzie(jmackenz@ThoughtWorks.com) 联系。
本文有以下主要内容:
· 持续集成的优点
· 集成越频繁, 效果越好
· 一次成功的创建是什么样的?
· 单一代码源
· 自动化创建脚本
· 自测试的代码
· 主创建
· 代码归还
· 总结
在软件开发的领域里有各种各样的“ 最佳实践” , 它们经常被人们谈起, 但是似乎很少有真正得到实现的。这些实践最基本、最有价值的就是: 都有一个完全自动化的创建、测试过程, 让开发团队可以每天多次创建他们的软件。“ 日创建” 也是人们经常讨论的一个观点, McConnell 在他的《快速软件开发》
中将日创建作为一个最佳实践来推荐, 同时日创建也是微软很出名的一项开发方法。但是, 我们更支持XP社群的观点: 日创建只是最低要求。一个完全自动化的过程让你可以每天完成多次创建, 这是可以做到的, 也是完全值得的。
在这里, 我们使用了“ 持续集成( Continuous Integration) ” 这个术语, 这个术语来自于XP( 极限编程) 的一个实践。但是我们认为: 这个实践早就存在, 并且很多并没有考虑XP 的人也在使用着它。只不过我们一直用XP 作为软件开发过程的标准, XP 也对我们的术语和实践产生了深远的影响。尽管如此,你还是可以只使用持续集成, 而不必使用XP 的任何其他部分— — 实际上, 我们认为: 对于任何切实可行的软件开发活动, 持续集成都是很基本的组成部分。实现自动化日创建需要做以下几部分的工作:
· 将所有的源代码保存在单一的地点, 让所有人都能从这里获取最新的源代码( 以及以前的版本)。
· 使创建过程完全自动化, 让任何人都可以只输入一条命令就完成系统的创建。
· 使测试完全自动化, 让任何人都可以只输入一条命令就运行一套完整的系统测试。
· 确保所有人都可以得到最新、最好的可执行文件。
所有这些都必须得到制度的保证。我们发现, 向一个项目中引入这些制度需要耗费相当大的精力。但是, 我们也发现, 一旦制度建立起来, 保持它的正常运转就不需要花多少力气了。 |
|