域驱动设计中的子域和限界上下文可以相同吗?
Can subdomain and bounded context be same in domain driven design?
我理解问题 space 中存在子域并对其进行细化以分解复杂性,而解决方案中存在有界上下文 space 并在上下文中表示为显式域模型。但是我仍然很困惑为什么我们不能将子域作为有界上下文?或者子域中是否存在有界上下文?
如果您真正了解问题 space 和解决方案 space 之间的区别,就像您在问题中所述,我想知道您为什么要问这个问题。
"But I am still confused why we can't have subdomains as bounded context?"
这就像在说"why can't we have questions as answers?"。
子域是更大域的问题,限界上下文是解决方案space,在实践中该问题将得到解决。您应该努力在子域和限界上下文之间实现 1 对 1 对齐,就像理想情况下您在问题和答案之间实现 1 对 1 对齐一样。
但是,作为开发人员,我们需要务实,在实践中,单个限界上下文总是可能涵盖多个子域。不过,这会增加术语超载的风险,因为多个子域将通过相同的通用语言 (UL) 表达。
明确一点,UL、代码、所选存储机制等都存在于有界上下文中:这些都是解决方案的一部分。
我理解问题 space 中存在子域并对其进行细化以分解复杂性,而解决方案中存在有界上下文 space 并在上下文中表示为显式域模型。但是我仍然很困惑为什么我们不能将子域作为有界上下文?或者子域中是否存在有界上下文?
如果您真正了解问题 space 和解决方案 space 之间的区别,就像您在问题中所述,我想知道您为什么要问这个问题。
"But I am still confused why we can't have subdomains as bounded context?"
这就像在说"why can't we have questions as answers?"。
子域是更大域的问题,限界上下文是解决方案space,在实践中该问题将得到解决。您应该努力在子域和限界上下文之间实现 1 对 1 对齐,就像理想情况下您在问题和答案之间实现 1 对 1 对齐一样。
但是,作为开发人员,我们需要务实,在实践中,单个限界上下文总是可能涵盖多个子域。不过,这会增加术语超载的风险,因为多个子域将通过相同的通用语言 (UL) 表达。
明确一点,UL、代码、所选存储机制等都存在于有界上下文中:这些都是解决方案的一部分。