我从来没有使用CI工具之前,但是从我读过,我不确定它能提供任何有益于一个开发,是不是写代码的每一天。

第一个-有什么好处并CI提供的任何项目?

第二-谁应该使用CI?它不会受益于所有开发商?

有帮助吗?

解决方案

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

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

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

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

其他提示

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

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

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

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

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

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

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

事实是,这一连续整合使大多数感觉在队伍。单的开发人员还可以得到一些优点,你必须自己决定如果它们足以反时你投资的进入设置一个CI-系统。

  • 如果你忘了签一些必要的文件,储存库包含一个破碎的版本,即使它的工作在你的机器。CI将检测情况。
  • 如果你CI-服务器上运行的一个不同的机,它可以指示的依赖关系上你的建的环境。意味着,建立和所有测试可以在你的开发中,但在另一台机器上一些依赖的不履行而建立的休息时间。
  • 每日生成可以表明,旧的软件不起作用的最新升级操作系统/compiler/图书馆...
  • 如果你CI-系统有一个档案内的文物,你可以容易获取一个分配一个旧版本的软件。
  • 一些CI有一个很好的接口,以显示你的指标,对你的建立,有联系的自动生成的文件和类似的东西。

我们使用我们的CI系统做发布版本(以及通常自动"上提交的"建立).

能够按一下按钮,开发行版本步骤,通过所有的进程释放一设置为:

  • 快(我可以直在与其它东西,以及它的运行一个单独的机器,所以它不是拖我下);
  • 重复性的(它不要忘记任何东西,包括复制的设置,以释放文件夹和通知的每个人需要知道的)
  • 可靠的(没有错误,不同于一个人!).

在一个灵活的环境,在这里您期望提供工作的软件每2-4周,这绝对是值得拥有,甚至在一个团队1。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top