我决定和Firestore一起去我们的新项目。
目标是我不希望我们的服务器逻辑和数据库设计被云函数和Firestore锁定,也不希望长期可维护性。
虽然我知道还会有某种程度的闭锁,
我的想法是将云函数中的逻辑单独编写为微服务,并将数据集持久化到任何其他数据库中。(这是写模型)
同时,我们将预测这些变化,以更新另一桶Firestore,这将优化客户端应用程序在其上的读取。(这是读的模型)
这是实现我的目标的好主意吗?
发布于 2020-11-13 10:46:59
命令查询责任分离(CQRS)是一种允许区分读写模型的模式。
这两个模型都可以在单个数据库上工作,也可以将写模型存储在单独的数据库中,并使用另一种机制为读取模型创建视图。
CQRS模式本身并不能阻止供应商锁定。与任何软件系统一样,为了最小化对特定技术的依赖,需要创建一个抽象,允许您在不影响应用程序其余部分的情况下交换底层实现。
这通常是通过在两个职责之间创建一个额外的层来完成的。如果我们查看数据库,常见的方法是创建处理与数据库通信的存储库类。应用程序只知道存储库类,所以如果您决定使用不同的数据库技术,那么只需要更改存储库类。
https://softwareengineering.stackexchange.com/questions/418913
复制相似问题