如何构建每个客户具有多个版本的应用?

时间:2018-08-05 13:43:29

标签: angularjs architecture modularity

最近,我工作的公司给我的任务是将2个angularjs应用程序统一为一个。 当我尝试缠住它时,以下是详细信息: -这两个应用共享许多共同的逻辑 -其中一个应用程序(主要是一个)面向公众,另一个则是针对特定客户的。 -每个应用程序当前都使用其自己的数据库,这是因为客户的应用程序更复杂并且需要更多数据。 -公共应用的某些常见逻辑由于其性质而被客户应用覆盖。 例如,登录页面在“ public”中非常简单,但是在“ customer”中将有一个额外的层来验证注册码,并从数据库中为该代码获取正确的数据。

我试图弄清楚如何将它们统一到1个应用中,同时能够在应用模式或类似模式之间进行调节

1 个答案:

答案 0 :(得分:0)

有一种方法可以使用DDD (Domain Driven Design)解决此问题。明确两个应用程序的域。例如,如果您遇到2个不同域中的2个用户模型(是这种情况),则希望区分这两个用户模型。

在无法为您构建应用程序框架的地方,它将为如何构建应用程序以及正确命名和标识上下文,域和模型提供清晰的思路。

具有明确的域应该明确哪些模型可以访问数据库中的X资源。

节流也是一种选择,但是如果我不必维护其中一个版本,我只会这样做。如果开发只向一个分支分支,而不推荐另一个分支,那么这是一个合理的解决方案,但是以这种方式维持两个开发分支会很困难。