angularjs - 如何构建每个客户有多个版本的应用程序?
问题描述
最近,我工作的公司给了我将 2 个 angularjs 应用程序合二为一的任务。虽然我试图绕开它,但这里有一些细节: - 这两个应用程序共享相当多的共同逻辑 - 一个应用程序(主要应用程序)是面向公众的,另一个是为特定客户制作的。- 每个应用程序目前都使用自己的数据库,这是因为客户的应用程序更复杂,需要更多数据。- 公共应用程序的一些常见逻辑由于其性质而被客户应用程序覆盖。例如,“public”中的登录页面非常简单,但会有一个额外的层来验证“customer”中的注册代码并从数据库中获取该代码的正确数据。
我试图弄清楚如何将它们统一到一个应用程序中,同时能够在应用程序模式或类似模式之间进行节流
解决方案
有一种方法可以使用DDD(领域驱动设计)来解决这个问题。明确划分这两个应用程序的域。例如,如果您在 2 个不同的域中遇到 2 个用户模型,在这种情况下,您希望区分它们两者。
虽然这不会为您提供构建应用程序的框架,但它将提供关于如何构建应用程序以及正确命名和识别上下文、域和模型的清晰思路。
拥有清晰的域应该明确哪些模型可以访问数据库中的 X 资源。
节流也是一种选择,但如果我不必维护其中一个版本,我只会这样做。如果开发分支只针对一个,弃用另一个,那么这是一个合理的解决方案,但是以这种方式维护 2 个开发分支是非常痛苦的。
推荐阅读
- applescript - How do I add text to a new BBEdit document at creation?
- haskell - Haskell 99 Questions #27
- gson - 如何将我的 JsonObject (com.google.gson.JsonObject) 转换为 GenericRecord (org.apache.avro.generic.GenericRecord) 类型
- java - I cannot seem to run my android studio project on an older android phone
- python - Python + Selenium --How to find a dynamic element
- javascript - How to use JSON to load data in D3 version 4?
- c++ - 尝试用 C++ 编写我自己的链表实现,在列表中点击 3 个元素后出现代码段错误
- c - If-Statement 中的 AND(&&) 是否按照我输入的顺序进行检查?
- java - Set image as wallpaper from url (Glide + json)
- c# - 为什么在编辑器类型脚本中它永远不会到达断点?