我之前从未使用过CI工具,但从我读过的内容来看,我不确定这会给每天不编写代码的独立开发人员带来什么好处。
首先 - CI为任何项目带来了哪些好处?
第二 - 谁应该使用CI?它对所有开发人员都有好处吗?
答案 0 :(得分:68)
CI的基本概念是,每当有人提交版本控制系统时,您就拥有一个构建代码并运行自动化测试的系统。这些测试包括单元和功能测试,甚至行为驱动测试。
好处是你知道 - 当有人破坏了构建时。这意味着要么A)他们提交了阻止编译的代码,这会阻止任何人进行“更新”,或者B)他们提交了破坏某些测试的代码,这或者意味着他们引入了需要修复的bug,或者需要更新测试以反映代码中的更改。
如果您是独立开发人员,如果您习惯在提交之前运行测试,则CI不是完全,这就是 >做。话虽这么说,你可能会养成让CI为你做测试的坏习惯。
作为一名独奏程序员,它主要归结为纪律。使用CI是一项非常有用的技能,但是您希望避免产生任何不能转化为团队环境的坏习惯。
答案 1 :(得分:15)
正如其他人所说,CI 确实对独立开发者有优势。但你要问自己的问题是;是否值得开销?如果您像我一样,可能需要一两个小时才能为项目设置CI系统,因为我必须分配服务器,设置所有网络并安装软件。请记住,CI系统一次只能节省几秒钟。对于独立开发人员,这些时间的累计时间不可能超过完成CI设置所需的时间。
但是,如果您之前从未设置过CI系统,我建议您只是为了学习如何做到这一点。它不需要很长时间,因此不值得学习。
答案 2 :(得分:10)
CI的好处在于能够在办理登机手续时破坏建筑物时尽早发现。您还可以针对构建运行自动化测试套件,以及运行任何类型的工具来为您提供指标等。
显然,当你拥有一支通勤者团队时,这是非常有价值的,而不是所有人都勤奋地检查是否有变化。作为一名独立开发者,它并没有那么有价值。据推测,您可以运行单元测试,甚至可能进行集成测试。但是,我发现很多情况下开发人员忘记签出文件中的文件。
CI构建也可以被视为您的“发布”版本。环境应该稳定,不受您刚添加到计算机的任何开发Gizmo的影响。它应该允许您始终重现构建。 如果您向项目添加新的依赖项,并且忘记设置发布构建环境以将其考虑在内,这可能很有价值。
答案 3 :(得分:6)
事实是,持续整合在团队中最有意义。单个开发人员也可以获得一些优势,您必须自己决定是否足以应对投入设置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)