Python 模型和有界上下文如何映射到代码基DDD?

Python 模型和有界上下文如何映射到代码基DDD?,python,domain-driven-design,implementation,Python,Domain Driven Design,Implementation,模型和有界上下文在概念上是: 型号: 一种抽象系统,描述一个领域的某些方面 并可用于解决与该领域相关的问题 有界上下文: 一个单词或语句出现的设置,它决定了它的位置 意思 但我必须回答以下问题: 二者之间的关系是包容关系, i、 e.有界上下文是否有一个或多个模型 正如我所理解的,DDD概念应该可以通过代码库识别(在某种程度上),这对于聚合、实体、事件、命令等来说是很清楚的,但是模型和有界上下文是如何映射到代码库的呢?例如,模型只是一组一个或多个聚合,还是其他什么?有界上下文是名称空间还是其他什

模型和有界上下文在概念上是:

型号:

一种抽象系统,描述一个领域的某些方面 并可用于解决与该领域相关的问题

有界上下文:

一个单词或语句出现的设置,它决定了它的位置 意思

但我必须回答以下问题:

  • 二者之间的关系是包容关系, i、 e.有界上下文是否有一个或多个模型

  • 正如我所理解的,DDD概念应该可以通过代码库识别(在某种程度上),这对于聚合、实体、事件、命令等来说是很清楚的,但是模型和有界上下文是如何映射到代码库的呢?例如,模型只是一组一个或多个聚合,还是其他什么?有界上下文是名称空间还是其他什么

  • 提前谢谢

    注意:可以用框架、Django、Axon……等来陈述你的答案

    这是基于我的理解,当然。。。意见可能会有所不同

  • 模型不是代码中的一件事,但如果做得好,它就是代码。它是您从业务的知识危机中获得的,并尝试用代码捕获。为整个企业想出一种模式通常是一件愚蠢的差事。因此,您有一个模型在中有效的上下文
  • 有界上下文是模型有效的上下文。这是有价值的,有几个原因。它允许我们管理模型的范围和复杂性。模型只有在帮助我们解决业务问题时才有用。要做到这一点,我们需要在头脑中保持某种形式的信息,这样我们才能理解。这就是语言的来源。语言、聚合等对该上下文有效。我想在这里举个例子。电子商务结账中的产品不同于从仓库中挑选的产品。他们可能共享一些概念,但有些概念与上下文无关。应该在上下文映射中捕获它们之间的关系
  • 这是基于我的理解,当然。。。意见可能会有所不同

  • 模型不是代码中的一件事,但如果做得好,它就是代码。它是您从业务的知识危机中获得的,并尝试用代码捕获。为整个企业想出一种模式通常是一件愚蠢的差事。因此,您有一个模型在中有效的上下文
  • 有界上下文是模型有效的上下文。这是有价值的,有几个原因。它允许我们管理模型的范围和复杂性。模型只有在帮助我们解决业务问题时才有用。要做到这一点,我们需要在头脑中保持某种形式的信息,这样我们才能理解。这就是语言的来源。语言、聚合等对该上下文有效。我想在这里举个例子。电子商务结账中的产品不同于从仓库中挑选的产品。他们可能共享一些概念,但有些概念与上下文无关。应该在上下文映射中捕获它们之间的关系
  • 两者之间的关系是包容关系,即。 有界上下文有一个或多个模型

    我想你可以这样说,但是一个有界上下文(BC)只有一个模型,对象是根据BC的泛在语言(UL)命名的

    模型和BCs都属于解空间

    在问题空间中有域和子域

    在解决方案空间中有BCs(理想情况下与子域相关的比例为1:1)。为子域建模,每个子域模型都有一个BC

    但是,例如,您可以只使用一个模型对整个域进行建模,这样您在整个域的解决方案空间中就只有一个BC。在本例中,一个BC与多个子域相关。这个BC将是一个单片应用程序

    另一个例子是,当您将子域拆分为几个“部分”,并对每个“部分”进行建模时,就会出现与许多BC相关的子域。因此,子域将有许多模型。这样,在解决方案空间中,子域有许多BC,即,许多应用程序用于解决子域问题

    当根据UL术语进行划分时,子域和BCs之间出现1:N或N:1关系的情况

    据我所知,DDD概念应该是可识别的(在某种程度上) 通过代码库,这对于聚合、实体、事件、, 命令…等等,但如何将模型和有界上下文映射到 代码库?例如,一个模型只是一个或多个模型的集合 还是别的什么?有界上下文是名称空间还是名称空间 还有别的吗

    BC是一个软件系统,一个自主的应用程序。模型是BC的源代码。但在DDD中存在另一个概念:模块,一组内聚的域对象。它比BCs更薄

    因此,从宽到小:

    解决方案-->BC-->模块-->聚合-->实体和值对象

    两者之间的关系是包容关系,即。 有界上下文有一个或多个模型

    我想你可以这样说,但是一个有界上下文(BC)只有一个模型,对象是根据BC的泛在语言(UL)命名的

    模型和BCs都属于解空间

    在问题空间中有域和子域

    在解决方案空间中有BCs(理想情况下与子域相关的比例为1:1)。为子域建模,每个子域模型都有一个BC

    但是,例如,您可以只使用一个模型对整个域进行建模,这样您在整个域的解决方案空间中就只有一个BC。在本例中,一个BC与多个子域相关。这个BC将是一个单片应用程序

    另一个例子,一个子域与