如何在做微服务或soa时防止重复代码?或者如何定义有界上下文而不重复模型?

时间:2016-12-12 08:25:58

标签: soa microservices

有人可以请参考我如何分离出模型,同时将每项服务分开运行?所以基本上我们现在拥有的一些模型在服务之间重叠。我经历了一些要求使用规范模式的程序,但是我还得到了我们不应该使用规范模式。

其中一个解决方案是将所有模型保持在我们现在正在做的共同位置。但是,对于以每个服务一个存储库的形式管理服务似乎存在问题。

如果能为我找到合适的逻辑,重复的模型也适合我。

1 个答案:

答案 0 :(得分:0)

垂直切片和域分解导致每个垂直切片都有自己定义良好的字段(非实体)(有界上下文/业务函数),定义逻辑服务边界并将服务边界分解为业务组件和自治组件(最小工作单元)。

每个组件拥有它修改的数据,并且是系统中唯一可以更改数据状态的组件,您可以为读者提供许多数据副本,但只有一个逻辑编写器。

因为它们是负责数据模型状态的组件的内部(并且是封装的),因此更有意义的是不共享这些数据模型。

数据阅读器可以使用视图模型,这些视图模型由消费者和生产者决定,视图/阅读模型保持"真实" /"当前"事务数据的状态(对于数据修饰符是私有的),在任何逻辑状态改变之后,数据处理器可以更新读取数据。

因此,为只读消费者发布视图/读取模型更有意义......

查看Udi Dahan's video

这有意义吗?