我以前从未使用过CI工具,但是从我读过的内容来看,我不确定它是否会对每天都不编写代码的单独开发人员带来任何好处。
首先-CI可为任何项目带来什么好处?
第二-谁应该使用CI?它对所有开发人员都有利吗?
Answers:
CI的基本概念是,您拥有一个可以在每次有人提交版本控制系统时构建代码并运行自动测试的系统。这些测试将包括单元和功能测试,甚至是行为驱动的测试。
好处是您立即知道有人破坏了构建。
这意味着:
一。他们提交了阻止编译的代码,这会使任何人搞砸
乙。他们提交的代码破坏了一些测试,这意味着他们引入了需要修复的错误,或者需要更新测试以反映代码中的更改。
如果您是一个单独的开发人员,那么如果您习惯于在提交之前运行测试(这是您应该做的)的良好习惯,则CI不会那么有用。话虽如此,您可能养成让CI为您进行测试的不良习惯。
作为一个单独的程序员,它主要归结为纪律。使用CI是一项有用的技能,但是您要避免养成不会转化为团队环境的不良习惯。
CI的优势在于能够在签入破坏了构建的情况下及早发现。您还可以针对该版本运行一套自动化测试,以及运行任何类型的工具来提供指标等。
显然,当您有一个提交者团队时,这并不是很有价值,因为并非所有的提交者都勤于检查重大更改。作为一个单独的开发人员,它并不那么有价值。据推测,您可以运行单元测试,甚至可以运行集成测试。但是,我见过很多情况,开发人员忘记从文件集中检入文件。
CI构建也可以视为您的“发布”构建。环境应该是稳定的,并且不受添加到计算机中的任何开发小工具的影响。它应该允许您始终复制构建。如果您在项目中添加了新的依赖项,而忘记设置发行版构建环境来考虑这一点,那么这可能会很有价值。
事实是,在团队中持续集成最有意义。单一开发人员也可以获得一些优势,您必须自行决定是否足以抵消您投入时间来建立CI系统的时间。