持续集成对于独立开发人员来说很重要吗?

时间:2008-09-24 23:29:15

标签: continuous-integration

我之前从未使用过CI工具,但从我读过的内容来看,我不确定这会给每天不编写代码的独立开发人员带来什么好处。

首先 - CI为任何项目带来了哪些好处?

第二 - 谁应该使用CI?它对所有开发人员都有好处吗?

7 个答案:

答案 0 :(得分:68)

CI的基本概念是,每当有人提交版本控制系统时,您就拥有一个构建代码并运行自动化测试的系统。这些测试包括单元和功能测试,甚至行为驱动测试。

好处是你知道 - 当有人破坏了构建时。这意味着要么A)他们提交了阻止编译的代码,这会阻止任何人进行“更新”,或者B)他们提交了破坏某些测试的代码,这或者意味着他们引入了需要修复的bug,或者需要更新测试以反映代码中的更改。

如果您是独立开发人员,如果您习惯在提交之前运行测试,则CI不是完全,这就是 >做。话虽这么说,你可能会养成让CI为你做测试的坏习惯。

作为一名独奏程序员,它主要归结为纪律。使用CI是一项非常有用的技能,但是您希望避免产生任何不能转化为团队环境的坏习惯。

答案 1 :(得分:15)

正如其他人所说,CI 确实对独立开发者有优势。但你要问自己的问题是;是否值得开销?如果您像我一样,可能需要一两个小时才能为项目设置CI系统,因为我必须分配服务器,设置所有网络并安装软件。请记住,CI系统一次只能节省几秒钟。对于独立开发人员,这些时间的累计时间不可能超过完成CI设置所需的时间。

但是,如果您之前从未设置过CI系统,我建议您只是为了学习如何做到这一点。它不需要很长时间,因此不值得学习。

答案 2 :(得分:10)

CI的好处在于能够在办理登机手续时破坏建筑物时尽早发现。您还可以针对构建运行自动化测试套件,以及运行任何类型的工具来为您提供指标等。

显然,当你拥有一支通勤者团队时,这是非常有价值的,而不是所有人都勤奋地检查是否有变化。作为一名独立开发者,它并没有那么有价值。据推测,您可以运行单元测试,甚至可能进行集成测试。但是,我发现很多情况下开发人员忘记签出文件中的文件。

CI构建也可以被视为您的“发布”版本。环境应该稳定,不受您刚添加到计算机的任何开发Gizmo的影响。它应该允许您始终重现构建。 如果您向项目添加新的依赖项,并且忘记设置发布构建环境以将其考虑在内,这可能很有价值。

答案 3 :(得分:6)

事实是,持续整合在团队中最有意义。单个开发人员也可以获得一些优势,您必须自己决定是否足以应对投入设置CI系统的时间。

  • 如果您忘记检查某些所需文件,则存储库中包含损坏的版本,即使它适用于您的计算机。 CI会检测到这种情况。
  • 如果您的CI服务器在不同的计算机上运行,​​它可以指示您的构建环境的依赖关系。意味着,构建和所有测试都可以在您的开发箱上运行,但在另一台机器上,某些依赖关系不会被实现,并且构建会中断。
  • 每日构建可以表明您的旧软件无法使用最新的OS /编译器/库升级...
  • 如果您的CI系统具有构建工件存档,则可以轻松获得旧版软件的分发。
  • 有些CI有一个很好的界面,可以显示有关构建的指标,有自动生成文档的链接等等。

答案 4 :(得分:6)

如果您需要支持多个编译器,那么在您只在一个IDE中开发时,使用CI构建系统来完成所有这些操作非常方便。我的代码在V86中通过VS2008在x86中构建,x64在VS2005上构建。 8,每个项目配置为每个项目构建7个...拥有CI系统意味着我可以在一个IDE中进行开发,并让CI系统证明我支持的所有编译器仍在构建。

同样,如果您正在构建由多个项目使用的库,那么CI将确保它们适用于所有项目,而不仅仅是您正在使用的项目...

答案 5 :(得分:5)

我们使用CI系统进行发布版本(以及通常的自动“on-commit”版本)。

能够单击启动Release构建的按钮,该构建逐步执行所有过程以释放设置:

  • 速度快(我可以直接使用其他东西,它可以在一台单独的机器上运行,因此它不会减慢我的速度);
  • 重复(它不会忘记任何事情,包括将设置复制到发布文件夹并通知所有需要知道的人)
  • 可靠(没有错误,不像人类!)。

在敏捷环境中,您希望每2-4周交付一次工作软件,这绝对值得拥有,即使是在1人团队中也是如此。

答案 6 :(得分:2)

如果您忘记检查某些内容(因为构建将被破坏),CI会让单独的开发人员受益。但是,当没有其他开发人员时,它的集成价值会减少。