drupal - 对于将在 Drupal 项目上工作的小型分布式团队来说,最佳实践是什么?

标签 drupal distributed

经过一些研究,我们选择在下一个项目中与 Drupal 合作,我们是一个分布式团队。

由于 Drupal 将(基于我们迄今为止所看到的)所有内容存储在数据库中,作为一个分布式团队,我们如何在这个项目上协同工作?我们应该采取哪些最佳实践?

我们曾考虑使用共享数据库服务器来执行此任务,但它只会破坏我们运行该项目所需的性能。对此有何建议?

最佳答案

Jeremy 的回答 (+1) 已经很全面了。一些额外的更实用的建议没有特别的顺序。

免责声明:这是对我有用的东西。其他人可能有其他建议,甚至不同意。如果是这种情况,我会很高兴听到反馈和替代/更好的建议!

  • 强调每个团队成员都应该通过更新代码和数据库来开始他/她的 session 。 您可以使用 ssh 的组合轻松编写所有这些脚本。和 rsync命令。我有时会创建一个脚本 ( update-project.sh ) 来更新存储库中的代码,并立即从主服务器下载和导入最新的数据库。
  • 别忘了拨打 http://example.com/update.php每次更新代码。 在您的临时站点上、每次提交后以及每次更新/拉取/ checkout 后在您的本地机器上运行此命令。
  • 通过 SQL 查询对数据库进行任何更改,而不是使用 GUI。 这样,您只需将该查询包装到 hook_update_N() 中即可。在 yourmodule.install 文件中实现,你是安全的(如果你遵守第 2 点!)[一些 gui 工具输出等效的......这也很方便!]。
  • 如果可能,请包含在 hook_update_N() 中也会更改模块设置。 这是不可能的。如果不可能:请参阅第 7 点和第 8 点。
  • 创建或修改 View 时,完成后将其导出到文件。 与第 3 点相同的原则,但适用于 View 。这种方法还附带提供回滚机制的好处,以防您后来意识到自己犯了错误。
  • 使用主存储库。 不要选择过多的分布式版本控制系统。始终从同一个中央存储库中拉取和推送您的代码。
  • 始终在您的提交中包含评论。 特别是如果某些代码更改更改了某些功能/API/通用逻辑,请注意在提交消息中包含警告。如果需要,可以将详细信息放在 changelog.txt 文件中。
  • 提交时,立即在主数据库上重现您尚未设法包含在 hook_update_N() 中的任何手工制作的数据库更改。执行。 如果您的团队成员按照 #1 中的描述开始他们的 session ,那么这是必须的。
  • 对版本控制下的内容要有选择性。 例如:排除 sites/default/settings.php但评估什么(如果有的话)需要从 sites/default/files 中进行版本控制(开发需要图像吗?和附件吗?)。
  • 有一些有用的贡献模块可以提供帮助。 import/export ,它允许您在存储库中管理您的 CCK 和 View 或 node export这允许您导出节点,然后将它们导入另一个 drupal 安装中。
  • 使用 simpletest module广泛。 那是 无论如何,但在团队合作时是很棒 想法:这样您就可以确保您的更改不会破坏其他人的工作。
  • 玩得开心! 我喜欢团队合作,我相信每个人都应该尝试这样做。它更有趣,更多的学习,最重要的是......更好的代码! :)

  • 加分点(不特指团队发展):
  • 尽量不要将临时服务器用于真正的内容插入。 理想情况下,您应该仅在代码以某种方式卡住或使用导入路由/模块时才开始创建内容:drupal 在表中散布信息很多,并且钩子(Hook)系统很难跟踪哪些模块在何处存储了哪些信息:如果您开发在具有真实数据的数据库上,您将不可避免地在某个时刻破坏一些表,并且您可能会在投入生产的前一天意识到这一点。 :(
  • 关于drupal - 对于将在 Drupal 项目上工作的小型分布式团队来说,最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1821085/

    相关文章:

    drupal - 在 Drupal 中 Hook 用户注册

    具有多个分类术语的 Drupal 8 实体查询

    php - 创建分类法时删除描述框

    mysql - 一个困难的查询代码

    design-patterns - 关于设计松散耦合的完整系统的建议?

    forms - drupal_get_form 不会打印添加节点表单

    Java分布式应用程序-消息传递

    parallel-processing - Julia:远程工作人员的 SharedArray 变成一个 0 元素数组

    c++ - 毕业设计

    algorithm - 如何在网络上的多台计算机上构建分布式健壮链表?