Domain driven design 中断对有界上下文的应用程序

Domain driven design 中断对有界上下文的应用程序,domain-driven-design,Domain Driven Design,您如何规划应用程序并将其划分为有限的上下文?一方面,实现所有这些解耦非常方便,但另一方面,过多的粒度可能会导致非常麻烦的开发。这条细线在哪里?在设计有界上下文和上下文映射时,您考虑了哪些因素?它们是技术性的还是战略性的 在许多示例中,您将电子商务应用程序视为一组有界上下文:目录、购物、发票、交付等 这些是从哪里来的?技术性的,绝对不是 你听说了吗?我认为这是一个很好的方法来发现你的边界 有界上下文是关于语言的,它不是技术或架构思考,而是关于您的领域和您的领域专家使用的词语: 当你为你的领域模型建

您如何规划应用程序并将其划分为有限的上下文?一方面,实现所有这些解耦非常方便,但另一方面,过多的粒度可能会导致非常麻烦的开发。这条细线在哪里?在设计有界上下文和上下文映射时,您考虑了哪些因素?它们是技术性的还是战略性的

在许多示例中,您将电子商务应用程序视为一组有界上下文:目录、购物、发票、交付等


这些是从哪里来的?

技术性的,绝对不是

你听说了吗?我认为这是一个很好的方法来发现你的边界

有界上下文是关于语言的,它不是技术或架构思考,而是关于您的领域和您的领域专家使用的词语:


当你为你的领域模型建模时,你必须定义你的边界(对于电子商务来说,产品不是同一个概念,在不同的上下文中具有相同的属性:目录、购物……关于客户的事情是一样的……而且你不必为每个上下文使用相同的实体,因此每个上下文都有其特定的泛化语言),反复思考此活动(有时会出现有界上下文,但首先看不清楚)

一旦您使用两个相同的词来定义不同的概念,您将面临两个有界上下文

假设有一个处理电影租赁的应用程序。
如果您的团队(业务/开发人员)谈论“用户”来定义用户的身份和访问权,以及“用户”来定义承租人,那么您将拥有有限的上下文:

  • IdentityAndAccessContext(管理身份验证、角色等技术)
  • MovieRentalContext(不知道用户,但不知道租用者)

  • 有界语境是所选择的普遍语言的反映

    对于从头开始的领域建模,我认为从一个有界上下文和一个模块开始是一个好的决定。当一个模块中的概念开始冲突或看起来很奇怪时,是时候将一些概念分离成不同的模块(或在模块之间重新组织)。 将模块划分为不同的有界上下文的相同方法