首页 > 解决方案 > 如何构建每个客户有多个版本的应用程序?

问题描述

最近,我工作的公司给了我将 2 个 angularjs 应用程序合二为一的任务。虽然我试图绕开它,但这里有一些细节: - 这两个应用程序共享相当多的共同逻辑 - 一个应用程序(主要应用程序)是面向公众的,另一个是为特定客户制作的。- 每个应用程序目前都使用自己的数据库,这是因为客户的应用程序更复杂,需要更多数据。- 公共应用程序的一些常见逻辑由于其性质而被客户应用程序覆盖。例如,“public”中的登录页面非常简单,但会有一个额外的层来验证“customer”中的注册代码并从数据库中获取该代码的正确数据。

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

标签: angularjsarchitecturemodularity

解决方案


有一种方法可以使用DDD(领域驱动设计)来解决这个问题。明确划分这两个应用程序的域。例如,如果您在 2 个不同的域中遇到 2 个用户模型,在这种情况下,您希望区分它们两者。

虽然这不会为您提供构建应用程序的框架,但它将提供关于如何构建应用程序以及正确命名和识别上下文、域和模型的清晰思路。

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

节流也是一种选择,但如果我不必维护其中一个版本,我只会这样做。如果开发分支只针对一个,弃用另一个,那么这是一个合理的解决方案,但是以这种方式维护 2 个开发分支是非常痛苦的。


推荐阅读