我们今年在 Rails 3 中开发了一个应用程序(计划升级到 Rails 4)。 我们已将其出售给 2 个客户,现在问题开始了。
除了样式表、一些 html 和一些类之外,所有应用程序的核心都或多或少相同。
现在我正在寻找一种方法来管理这些应用程序,例如当我们有 100 个客户运行该产品时。
因此有以下问题:
- 您如何管理所有客户的更新?
- 您如何管理所有客户的修复(对于 2 个客户,我目前只是挑选,但对于 100 个客户,您不能这样做,一些客户代码不同,因此像批量挑选这样的东西并不总是有效)
- 您如何管理新客户?
- 是否可以像在 drupal 中那样使用样式表文件将代码与样式分开?
- 如有任何问题,随时可以添加。
亲切的问候。
EDIT1:我们提供的是一个有核心的网站,但每个客户都可以对网站进行从核心到设计的任何更改。
编辑 2: RAILS 代码:我们有一个 Rails 管理界面,假设我们通过设置使所有代码可定制:
If Settings.value_shown == true
User.do_something
else
User.do_something_else
end
CSS/SASS 代码: 假设我们制作了 1 个干净的 CSS,并且我们为每个客户创建了一个覆盖所有标准代码的覆盖类。
EDIT3:假设这 50 个客户中的每个客户都有 3 个分支机构,即 DEV/QUALITY/PRODUCTION 系统。我们为所有客户开发了一个修复程序,您如何将此修复程序部署到所有客户?
最佳答案
把不同客户的代码放到不同的分支是第一个问题。您应该沿着其他轴真正自定义每个客户的代码。例如,您可以为每个客户创建一个单独的目录,或者某种插件架构,其中客户的特殊代码位于单独的元素中。或者您将所有代码集中在一件大事中,并添加一些针对每个客户的配置。
但是针对不同客户的 $N 个不同分支意味着代码的 $N 个副本,您必须手动修补它们。不要那样做。
Google 的一个很好的关键字是“软件产品线”,因为这就是您想要做的:-)
关于css - 通过 Rails 管理大型应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25184295/