我正在为该应用程序创建 Web 应用程序和微服务,并且两者都需要使用 Sequelize 创建相同的数据库模型。使用 NodeJS 处理此任务的方法是什么?
我正在考虑创建我的数据库模型的单独模块并将其保存在私有 git 中,并将此私有 git 作为 npm 依赖项添加到我的 Web 应用程序和微服务中。
但我想知道这是正确的方法还是在几个微服务之间分离共享私有模块的正确方法是什么,在我的例子中它是数据库模型?
我应该选择 DRY 还是不选择?
提前致谢!
关于微服务,没有规定代码不应该重用。事实上,指出微服务的 DRY 总体上是错误的是危险的。相反,您应该问以下问题:Will the shared code be a separate module with a dedicated purpose that rectifies a separately managed lifecycle and releases?
如果是,您绝对应该将其作为单独发布的模块重用 - 类似于重用任何第三方库的方式。这可确保共享代码和微服务之间不会存在强耦合,因为每个微服务团队都可以自行决定是否要保留模块的特定发行版本或升级到较新的版本。您想要避免的是当重用库发生变化时迫使您更改微服务的依赖关系(避免连锁反应)。
另一件事 - 因为您提到它是与数据库相关的模式,所以您必须问另一个问题:Will the schemas being reused in separate DBs or will they refer to the same physical DB in the end?
。如果它们最终使用共享数据库,那么您就有效地紧密耦合了两个微服务,因此它们可能应该被视为同一服务的一部分,而不是单独的。
我觉得这就是我在不了解更多关于您的服务和目标的情况下所能说的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)