1

有人在 Drupal 开发中应用 XP 原则吗?

例如,我想知道诸如单元测试之类的事情,以及它是否可以用于 Drupal 开发,或者关于持续集成。我不确定单元测试,因为 Drupal 环境是一个非常具体的东西,并且没有足够的面向对象来拥有模拟对象。正如我所看到的,同行评审可以在 Drupal 开发中实现,但更多的是在您与另一个人讨论代码和模块的哪些组合可用于解决某些任务的层面 - 这是您通常在其中做出决定的地方德鲁巴。

此外,可能有一些开发实践可以帮助团队以更好的效率协作构建 Drupal 站点,我想知道是否有。

如果有人在团队中开发了大型 Drupal 站点,我感谢您对这一进展的反馈,例如您为改进开发和管理所做的工作。

4

3 回答 3

1

它没有障碍,但有一些陷阱。

我们与大约 20 名 Drupal 开发人员一起使用 CI、单元测试和同行评审。当开发人员提交作业时使用 subversion 会触发使用 Hudson 进行构建和测试。如果您愿意,可以使用一个AIM 。

陷阱。一个是配置,我们通过专门为此创建的模块中的更新语句来更改它。然而,这并不像我们希望的那样可靠,并且一些配置更改很难在代码中表达出来。

另一个是 Simpletest 的设置有点奇怪,所以你必须从头开始创建数据。虽然从单元测试的角度来看这很好。它使您的最终设置的自动化测试变得困难。

然而,它对我们来说效果很好,我们正在考虑使用 selenium 之类的东西进行整个站点测试。

我们使用 scrum 作为管理框架,它似乎工作得很好。对于较大的项目,具有用于不同功能领域的模块也很重要。尽可能多地使用 contrib 模块。

于 2009-11-13T06:33:52.187 回答
1

你看过Simpletest模块吗?它在 D5 和 D6 中是分开的,但在 D7 中它是内置的。这就是我通常进行单元测试的方式。

确实你不能做模拟对象。相反,每个测试实际上都会在新数据库中创建一个全新的 drupal 安装,运行您指定的任何测试,然后自行清理。因此,模拟数据库不是问题。

也就是说,在 Drupal 7 中,我们还拥有 DBTNG,它是面向对象的。

于 2009-11-12T22:40:20.207 回答
0

结对编程当然是可能的。持续集成?如果您设置了一些将在每次签入时运行的自动构建/测试,那么您可以在这方面大有帮助。迭代、计划游戏和类似性质的东西可以很容易地结合起来。测试驱动开发,即使不是从单元测试的角度来看——编写一个快速的 UI 测试(例如使用 Selenium),你就可以进行红绿重构。

我想知道的是,Drupal 是什么让您认为它在任何方面都是独一无二的?:)

于 2009-11-13T04:24:26.783 回答