自从我5个月前加入公司以来,我一直在推动连续集成,但是在看到我们正在开发的应用程序类型之后,我开始认为为每个项目设置连续集成可能不值得这个努力。
如果你在一个开发部门工作,平均项目需要2-3周的时间,一旦部署后你很少或根本不必担心它,那么设置连续集成是否值得麻烦?
自从我5个月前加入公司以来,我一直在推动连续集成,但是在看到我们正在开发的应用程序类型之后,我开始认为为每个项目设置连续集成可能不值得这个努力。
如果你在一个开发部门工作,平均项目需要2-3周的时间,一旦部署后你很少或根本不必担心它,那么设置连续集成是否值得麻烦?
这可能取决于您的流程。如果您有覆盖代码的单元测试,则持续集成非常值得。假设您们所有人都在单个工作模块上工作,因为项目持续2-3周。
我认为人们不会对每个提交运行每个测试,这时持续集成非常有帮助。
另一个原因是如果您的项目高度模块化。我曾在系统中工作过,在其中存在许多模块,开发人员在提交之前不会对整个网站进行功能测试。事情可能甚至无法正确编译,因为其他模块甚至无法构建,因为开发人员没有检出完整的代码。
无论如何,我建议使用持续集成。像Hudson和Cruisecontrol这样的设置不需要花费很多时间来设置,并且很快就可以回报。
个人认为CI及其鼓励的各种流程总是有用的。一旦您设置好服务器,设置CI就相当简单了。您基本上只需从一个项目复制配置文件,进行编辑并创建新项目即可。我不会因为“为每个项目设置而付出的努力”而不使用CI。
持续集成不仅是工具问题,还涉及一系列流程(定期提交,使用版本控制系统等)。
对于I.C软件,您可以在不到10分钟的时间内安装、配置并开始使用Hudson!那么为什么要没有任何IC系统呢?
这真的取决于您能够多快地设置自动化构建,然后将其连接到CI服务器。
.NET
我曾经使用UppercuT,在几分钟内为项目创建了自动化构建,我们使用它和CruiseControl.NET(在配置中,我们为每个项目添加一行,因为我们利用预处理器)。
http://code.google.com/p/uppercut/
这里有一些好的解释:UppercuT如果你的许多应用程序共享任何公共组件或模块,那么 CI 和测试很可能会帮助你注意到某些东西出了问题。如果它们真的都是一些小型且独立的脚本,那么你可能不需要 CI,但这是一个艰难的决定。
正如其他人所指出的那样,一旦设置了CI,添加新项目就变得微不足道了,所以我建议你去做。你将会看到一个好处是,如果你的任何项目发生了变化,你已经准备好了CI和希望你的单元测试,这样你就不会遇到任何不愉快的惊喜!
持续集成不仅可以确保功能正常,还可以让您记录和测试发布过程,就像新开发人员所做的那样。
这确保了客户获得经过测试的内容,而不是开发人员从硬盘中随意组合的内容。
这对于维护目的可能非常重要。