针对不同客户的可自定义Rails应用程序

时间:2014-09-23 17:02:17

标签: css ruby-on-rails ruby-on-rails-3 git ruby-on-rails-4

我会尽量使这一点尽可能清楚,这是一个非常困难的情况,我会尽量解释清楚。我在Rails方面经验不多,但我想以最好的方式做Rails。我以前创建了一个上一个主题,但我并不理解它Managing Large Scale apps via Rails

原始情况:

我们开发的应用程序只考虑了1个客户。为满足客户需求,我们有以下分支机构:

  • 开发
  • 客户DEV(测试新开发项目的独立网站)
  • 客户ACC(接受更改的单独网站)
  • 客户PRD(客户制作网站)

现状:

现在我们有第二个客户,所有分支机构都增加了一倍。因此,我们现在分别为每个客户开发更改。这些更改可能包括模型/控制器/帮助程序更改,它们具有不同的样式表(sass / css)以及不同的HTML。

因此,我们的1个应用程序已分为2个独立的应用程序,面向2个客户。现在我必须记住我在每个分支中做了什么,并尝试将其实现到其他分支中。

问题:

如果有更多客户购买,我将无法控制管理这些应用。因此每个客户可以拥有不同的CSS /不同的HTML /不同的模型/控制器/库。

问题示例:

  • 每个客户都有不同的 config / connections.yml 文件
  • 每个客户都有不同的翻译文件 config / locales / en.yml
  • 一个客户希望拥有一个包含用户(模型/控制器)的数据库,另一个客户想要将用户留在数据库中

我的想法:

当更多客户购买此应用时,我真的害怕失去对此应用的控制权。我害怕当25位顾客购买时,我将拥有100个Github分支机构。我不知道很多人是否有这个问题,或者我应该重新开始编写这些应用程序。我不知道这是否可能,但如果有人能帮助我,那将是非常棒的。

1 个答案:

答案 0 :(得分:0)

恕我直言,请考虑以下几点,以便更好地管理多个客户的应用程序:

  1. 不是为每个客户创建单独的分支并单独开发代码,而是为多个客户在同一分支中开发代码(根据您的发布管理,您可以继续拥有4个分支)。
  2. 如果客户需要任何功能,但不是 通过其他人然后创建用于转动功能的设置界面 开关。这可以通过将值存储在数据库中或使用gem来完成 例如flipperrollout
  3. 对于不同的HTML结构和css,不要维护多个模板/部分,而是为不同的客户维护不同的布局,并有条件地使用适当的css呈现相应的布局。让模板&部分是所有客户共同的。