Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns DDD微服务_Design Patterns_Architecture_Domain Driven Design - Fatal编程技术网

Design patterns DDD微服务

Design patterns DDD微服务,design-patterns,architecture,domain-driven-design,Design Patterns,Architecture,Domain Driven Design,几周前我一直在研究DDD模式,但我没有得到任何问题的答案 遵循Eric Evans原则,域模块不应该与其他模块、包或任何东西有依赖关系。这里应该包括所有的模型,如错误、实体、接口 我的问题是,如果一个错误模板在所有微服务之间共享,那么应该在每个微服务上重复相同的对象吗 我认为这在项目上提供了一个很棒的模块化,因为它没有外部依赖,但可伸缩性很差,因为在任何更改上,都必须更改每个微服务 你有没有想过这个?谢谢。本指南旨在: 您的域不依赖于共享库。这将阻碍一个领域的发展和变化,因为它会破坏另一个领域的

几周前我一直在研究DDD模式,但我没有得到任何问题的答案

遵循Eric Evans原则,域模块不应该与其他模块、包或任何东西有依赖关系。这里应该包括所有的模型,如错误、实体、接口

我的问题是,如果一个错误模板在所有微服务之间共享,那么应该在每个微服务上重复相同的对象吗

我认为这在项目上提供了一个很棒的模块化,因为它没有外部依赖,但可伸缩性很差,因为在任何更改上,都必须更改每个微服务


你有没有想过这个?谢谢。

本指南旨在:

您的域不依赖于共享库。这将阻碍一个领域的发展和变化,因为它会破坏另一个领域的行为。 帮助我们确保我们不会跨域复制业务行为。这是非常重要的。 您的域不依赖于基础架构。我强烈怀疑,在人们习惯于将域逻辑放入存储过程的时候,这一点要重要得多,但它在今天仍然非常重要,因为它确保了逻辑与存储库、存储等隔离和独立,从而使它非常容易测试。 综上所述,我们可以理解一些共享是好的。事实上,您已经在共享一些东西:基本语言结构和基类库。共享一些助手库是绝对好的,而且在某些情况下,这样做非常有帮助。但是,在执行此操作时,您应该非常小心:

以共享助手库的形式共享业务逻辑违反了上面的第一条规则,因为随着我们对域的理解的改变,业务逻辑可能会改变。 共享特定于域的数据结构违反了上述第一条和第二条规则。特定于领域的数据结构可能会随着我们对领域的理解的改变而改变,而依赖于它们的多个领域将阻碍这一过程。它还违反了第二条规则,因为特定于领域的数据结构隐含着行为。 特别是在您的情况下,这实际上取决于错误模板是什么:

它是否类似于某些数据结构,确保异常包含一些在调试中有用的基本信息集,并且不包括任何特定于域的数据结构?如果是这样的话,那可能没问题。 它是否接受特定于域的数据结构?那么我会说这不好 它是否包含任何特定于域的行为来解释某些特定于域的数据并填充模板?那还是不行。
本指南旨在:

您的域不依赖于共享库。这将阻碍一个领域的发展和变化,因为它会破坏另一个领域的行为。 帮助我们确保我们不会跨域复制业务行为。这是非常重要的。 您的域不依赖于基础架构。我强烈怀疑,在人们习惯于将域逻辑放入存储过程的时候,这一点要重要得多,但它在今天仍然非常重要,因为它确保了逻辑与存储库、存储等隔离和独立,从而使它非常容易测试。 综上所述,我们可以理解一些共享是好的。事实上,您已经在共享一些东西:基本语言结构和基类库。共享一些助手库是绝对好的,而且在某些情况下,这样做非常有帮助。但是,在执行此操作时,您应该非常小心:

以共享助手库的形式共享业务逻辑违反了上面的第一条规则,因为随着我们对域的理解的改变,业务逻辑可能会改变。 共享特定于域的数据结构违反了上述第一条和第二条规则。特定于领域的数据结构可能会随着我们对领域的理解的改变而改变,而依赖于它们的多个领域将阻碍这一过程。它还违反了第二条规则,因为特定于领域的数据结构隐含着行为。 特别是在您的情况下,这实际上取决于错误模板是什么:

它是否类似于某些数据结构,确保异常包含一些在调试中有用的基本信息集,并且不包括任何特定于域的数据结构?如果是这样的话,那可能没问题。 它是否接受特定于域的数据结构?那么我会说这不好 它是否包含任何特定于域的行为来解释某些特定于域的数据并填充模板?那还是不行。
好的,我的情况是你定义的第一个,它是一个错误模板,用于在微服务之间保持相同的结构,例如描述,引发异常的微服务..,它不依赖于域模型结构。在这个地方
se我将与一个小图书馆共享此基础知识。我认为任何东西都应该导出/导入,但如果它只是一个与域本身无关的小实用程序,我认为你是对的。非常感谢@skleanthouthan,没问题,很高兴能提供帮助,根据您告诉我的,应该可以。在开发时,请记住这些规则。在某些情况下,特定于域的含义取决于您的域,添加特定于域的功能的诱惑也可能很大。好的,我的情况是您定义的第一个情况,它是一个错误模板,用于在微服务之间保持相同的结构,如描述、引发异常的微服务。。,它不依赖于域模型结构。在这种情况下,我将与一个小型库共享此基础。我认为任何东西都应该导出/导入,但如果它只是一个与域本身无关的小实用程序,我认为你是对的。非常感谢@skleanthouthan,没问题,很高兴能提供帮助,根据您告诉我的,应该可以。在开发时,请记住这些规则。在某些情况下,特定于域的含义取决于您的域,并且添加特定于域的功能的诱惑可能很大。