CI对高度模块化项目的好处

时间:2010-10-29 20:00:41

标签: continuous-integration

由于我们的项目有些细分,因此在放弃我们的CI系统(Hudson FWIW)方面进行了一些讨论。在没有透露太多的情况下,您可以将每个项目视为与网站项目类似:它具有依赖关系,自己的单元测试等。

似乎CI的一个主要好处是确保项目的每个组件协同工作,但除了项目继承之外,我们的大多数项目都是独立的,并且单元测试相当好。

鉴于我在这里解释的内容(我们项目组织的奇怪之处);任何人都可以解释CI对分段\模块化\许多项目的任何好处吗?

据我所知,这是我找到的唯一理由:

“错误也是累积的。您拥有的错误越多,删除每个错误就越困难。这部分是因为你得到了bug交互,其中故障表现为多个故障的结果 - 使每个故障更难找到。这也是心理上的 - 当有很多错误时,人们找到并摆脱错误的能量就会减少 - 实用程序员称之为破碎的Windows综合症。“

从这里开始:http://martinfowler.com/articles/continuousIntegration.html#BenefitsOfContinuousIntegration

2 个答案:

答案 0 :(得分:1)

在您的情况下,您可以(至少)以下两种方式从CI中受益:

  • 您可以让CI服务器在每次subversion / ...签入后自动运行某些较大的测试套件。特别是测试不同模块的交互的那些,因此称为连续集成。当他们考虑办理登机手续时,这会消除开发人员的维护工作和等待时间。某些CI(例如Hudson)也可以配置为在构建依赖模块时自动构建模块。通过这种方式,您可以让它自动测试依赖模块是否与更改后的模块兼容。

  • 您可以让CI服务器将新工件发布到依赖项解析程序的存储库(例如,Ivy,Maven)。这样,各种模块可以自动下载它们所依赖的模块的最新(稳定)版本。将这一点与前一点结合起来,想象可能性(!!!)。

答案 1 :(得分:1)

我会使用Hudson,原因如下:

  • 确保您的项目正确构建/编译。
  • 根据其他工作的构建成功构建工作。
  • 确保您的代码符合商定的编码标准。
  • 运行单元测试。
  • 通知开发团队发现的任何问题。

如果项目数量稳步增加,您将发现需要能够有效地管理每个项目,特别是考虑到上述原因。