使用极限编程实践改进Drupal开发

时间:2009-11-12 22:34:10

标签: drupal extreme-programming

有没有人在Drupal开发中应用XP原理?

E.g。我想知道单元测试这样的事情以及是否可以使用它 在Drupal开发中,或关于持续集成。我不确定单元测试, 因为Drupal环境是一个非常具体的东西,并没有足够的面向对象 有模拟对象。在我看来,同行评审可以在Drupal开发中实现,但更多的是在你与另一个人讨论哪个代码和模块组合可以用来解决某些任务的层面 - 这是你通常在Drupal的。

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

如果有人在团队中开发了大型Drupal网站,感谢您对此进展的反馈,例如:你做了什么来使开发和管理更好。

3 个答案:

答案 0 :(得分:1)

你看过Simpletest模块了吗?它在D5和D6中是分开的,但是在D7中它会被烘焙。这就是我经常进行单元测试的方式。

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

那就是说,在Drupal 7中我们也得到了DBTNG,它是面向对象的。

答案 1 :(得分:1)

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

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

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

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

然而,它对我们来说效果很好,我们正在寻找使用硒等物质进行全站点测试。

我们使用scrum作为管理框架,似乎运作良好。对于更大的项目来说,为不同的功能区域提供模块也很重要。尽可能多地使用contrib模块。

答案 2 :(得分:0)

结对编程当然是可能的。持续集成?如果您设置了一些将在每次签到时运行的自动构建/测试,那么您可以走很长的路。迭代,规划游戏以及这种性质的东西都可以很容易地融入其中。测试驱动开发,即使不是从单元测试的角度来看 - 编写一个快速的UI测试(例如使用Selenium),你可以做红绿重构。

我想知道的是,Drupal会让你觉得它有什么独特之处吗? :)