Continuous integration 为什么我的开发团队应该有一个构建服务器?
我们知道这很好,但我发现我自己向我的雇主证明了这一点。请说明为什么开发团队需要构建服务器。以避免“但它在我的盒子上工作”的问题 拥有一个一致的、已知的环境,在该环境中构建软件以避免依赖于本地开发人员Continuous integration 为什么我的开发团队应该有一个构建服务器?,continuous-integration,build-automation,Continuous Integration,Build Automation,我们知道这很好,但我发现我自己向我的雇主证明了这一点。请说明为什么开发团队需要构建服务器。以避免“但它在我的盒子上工作”的问题 拥有一个一致的、已知的环境,在该环境中构建软件以避免依赖于本地开发人员 如果需要,您可以使用虚拟服务器来避免(大量)额外成本。尽快了解哪些单元测试正在工作,哪些没有工作;此外,您还将知道一次通过的单元测试是否开始失败。这应该可以总结为什么构建服务器至关重要: 这是一个连续的质量测试仪表板;它向您显示有关软件质量的统计数据,并立即向您显示这些数据。(朱尼特,科贝图拉) 它
如果需要,您可以使用虚拟服务器来避免(大量)额外成本。尽快了解哪些单元测试正在工作,哪些没有工作;此外,您还将知道一次通过的单元测试是否开始失败。这应该可以总结为什么构建服务器至关重要:
这是一个连续的质量测试仪表板;它向您显示有关软件质量的统计数据,并立即向您显示这些数据。(朱尼特,科贝图拉) 它确保开发人员不会因为其他开发人员破坏构建而受到束缚,并鼓励开发人员编写更好的代码。(FindBugs,PMD)
通过第一次从开发人员那里获得更好的代码(减少测试和重新测试的费用)以及从同一个开发人员那里获得更多的代码(因为他们不太可能互相绊倒),全年都可以为您节省时间和金钱。非技术人员可能涉及的两个主要原因:
- 它提高了开发团队的工作效率,因为问题在早期就被发现了
- 这使项目的状态非常明显。我已经向我的管理层展示了构建状态仪表板,现在他们一直在看它
还有一件事。像Hudson这样的东西设置起来非常简单——您可能只需要在角落里的某个地方运行一段时间,然后稍后再显示出来。使用构建服务器有多种原因。没有什么特别的顺序,而且是在我的脑海里:
这是我的主要论点:
- 所有官方发行版必须在受控环境中生成。也不例外
一旦您的构建机器对您的组织不可或缺(并且每个人都看到了它的好处),如果你愿意,你可以要求一个闪亮的新刀片:-)要说服你的雇主拥有一个构建服务器,最简单的办法就是告诉他们,他们将能够发布得更快,质量更好 更快的发布版本来自对构建质量的即时反馈。如果有人破坏了构建,他或她可以立即修复破坏的构建,从而避免构建和发布计划的延迟。如果没有构建服务器,团队将不得不花时间试图找到发生了什么、什么时候发生了什么以及如何修复它 每次有人检查版本控制系统的更改时,构建服务器都会自动运行错误检测工具,从而实现更好的质量。您没有提到组织中的主要开发语言是什么,但是这些工具,先进但商业化,简单但免费,实际上适用于所有语言。想到Lint、FxCop、FindBugs和PMD
您也可以查看此内容以进行更广泛的讨论。感谢各位的精彩回答,这里是对原始问题的一个扭曲。我的雇主同意让机器执行CI任务。我现在的挑战是证明为什么这台机器应该是独立的。我一直在使用整个公司用于测试的服务器,这意味着每个人都在搞乱它。我的论点是,我们需要一个受控的环境(正如弗拉基米尔指出的那样)。你的想法是什么?你更喜欢虚拟机还是专用机器?@H.亚伯拉罕·查韦斯:这是另一个问题。你应该把它当作一个新问题来问,而不是在这里的评论中。