构建服务器的优点?

时间:2010-04-09 05:48:59

标签: build-process build-automation

我试图说服我的同事开始使用构建服务器和Silverlight应用程序的自动构建。我之所以证明它是合理的,因为我们会更快地捕获集成错误,并且还将始终拥有系统的工作开发副本以及最新的更改。但有些人仍然没有得到它。

为项目使用Build Server有哪些最重要的优势?

8 个答案:

答案 0 :(得分:17)

除了更早发现编译器错误(这很重要)之外,还有其他优点:

  • 为每次签到(或每天或无论如何配置)生成完整的清洁版本
  • 生成一致的构建,这些构建由于先前构建中的遗留工件而不太可能正常工作
  • 提供实际打破构建的更改的历史记录
  • 为自动化其他相关流程(如部署到测试计算机)提供良好的机制

答案 1 :(得分:6)

  • 持续集成揭示了大局中的任何问题,因为不同的团队/开发人员在代码/应用程序/系统的不同部分工作
  • 单元和集成测试随着每个构建运行更深入,并暴露出可能在开发人员的工作站上看不到的问题
  • 免费咖啡/糖果/啤酒。当有人打破构建时,他/她会为其他团队成员做好准备......

我认为如果你能说服你的团队成员在开发期间没有暴露的错误和集成问题,那就足够了。

当然,你可以告诉他们,如果你不进行连续构建,团队在现代世界中会看起来很古老:)

答案 2 :(得分:3)

请参阅Continuous Integration: Benefits of Continuous Integration

  

总的来说,我认为持续集成的最大和最广泛的好处是降低风险。我的思绪仍然浮现在我在第一段中提到的早期软件项目中。在那里,他们最终(他们希望)进行了一个漫长的项目,但却没有真正了解它们在完成之前需要多长时间。

...

  

因此,持续集成项目的生产和流程中的错误都会大大减少。但是我应该强调,这种好处的程度与测试套件的好坏直接相关。您应该发现构建一个明显不同的测试套件并不困难。但是,通常情况下,在团队真正达到他们有可能达到的低级别错误之前需要一段时间。实现目标意味着不断努力并改进测试。

     

如果您持续集成,它将消除频繁部署的最大障碍之一。频繁部署很有价值,因为它可以让您的用户更快地获得新功能,更快地获得有关这些功能的反馈,并且通常在开发周期中变得更加协作。这有助于打破客户与开发之间的障碍 - 我认为这些障碍是成功开发软件的最大障碍。

根据我的个人经验,设置构建服务器并实施CI流程,确实改变了项目的执行方式。制作构建的行为变成了平凡的日常事物,因为你每天都会这样做。这使您可以更早地捕捉并更敏捷。

另请注意,设置构建服务器只是CI过程的一部分,其中包括设置测试并最终实现部署自动化(非常有用)。

通常不会提到的另一个副作用好处是像CruiseControl.NET这样的CI工具成为所有分支(包括内部RC)的所有版本号的中央发布者。然后,您可以强制您的团队始终发送来自CI工具的构建,即使它是产品的自定义版本。

答案 3 :(得分:2)

代码损坏或不兼容的早期警告意味着所有冲突都被识别为asap,从而避免了发布日期的最后一刻混乱。

答案 4 :(得分:1)

  • 当你的老板说“我需要尽快获得最新代码的副本”时,你可以在< 5分钟。

  • 您可以轻松地为内部测试人员提供构建,当他们报告错误时,他们可以轻松地告诉您“这是4月1日的每晚构建”,以便您可以使用相同版本的源代码

  • 您将确信自己有一种自动化方法来构建不依赖于在开发人员环境中设置但很难被其他人复制的库/环境变量/脚本等的代码谁想要使用代码。

答案 5 :(得分:1)

我们发现自动VCS标记的确切代码产生的版本非常有助于返回特定版本以复制问题。

答案 6 :(得分:1)

整合是一个盲点
集成通常不会得到任何尊重 - “我们只是将二进制文件扔进安装程序中”。如果ithis不起作用,那就是安装程序的错误。

稳定的构建环境
防止诸如“在Joe的机器上构建时有时会出现此错误”之类的借口。在Mikes机器上构建时,防止意外使用旧的依赖库。

真正的dogfooding
您的内部测试人员和用户拥有真正的客户体验。您的开发人员可以清楚地再现错误。

答案 7 :(得分:1)

我的经理告诉我们,我们需要设置它们有两个主要原因。没有真正与最终项目有关,但要确保检查或处理的内容是正确的。

首先要清理DLL Hell。当有人在他们的本地机器上构建时,他们可以指向任何参考文件夹。许多项目是使用不更新本地文件夹的人使用错误版本的dll构建的。在构建服务器中,它将始终由相同的源构建。您所要做的就是获取最新信息以获取最新的参考资料。

对我们来说,第二件主要事情是支持对它们知之甚少的项目。任何开发人员都可以抓住源代码并在需要时进行小修复。他们不必浪费时间设置或查找引用。我们有一个海外团队,主要在一个项目上工作,但如果我们需要在美国时间进行抢购,我们可以抓住最新的,并且能够建立不必担心破损的来源或没有检查的东西in。门禁签到可以节省团队时间的其他所有人。

相关问题