DDD领域消息建模表示法


设计松耦合系统需要的不仅仅是精心设计的边界。仔细定义有界上下文之间的交互同样重要。

有界上下文BC是软件架构中与域的一部分对齐保持一致的子系统。它可以作为微服务或单体中的模块来实现。

领域消息流程图是一个简单的可视化,显示单个场景的参与者、有界上下文和系统之间的消息流(命令、事件、查询)。

如何使用领域消息建模
在对架构有了初步了解--确定了候选的边界上下文后,就可以开始设计信息流程图了。

首先创建一个要建模的场景列表。然后为每个场景创建一个图表

创建图表时,典型的流程是

  • 从角色/情境/系统开始
  • 创建他们要发送的信息
  • 添加信息接收者以及连接发送者和接收者的线
  • 将信息放置在连接线附近
  • 重复步骤 1 - 4,直到场景完成

信息应包含 3 个元素:
  • 信息名称
  • 报文中包含的重要数据
  • 信息在模拟流程中出现的顺序

域消息流程图和一般图表的第一个问题是信息太多。米勒定律在这里是一个很好的启发法。目标是在图表上包含 5 到 9 条消息。
如果您发现向每条消息添加数据会破坏进度,则可以推迟每条消息的数据部分,直到放置完所有消息为止。


领域消息流程图有两种基本格式,但没有正式的规范,因此,如果基本格式不适合您,请根据您的需要调整工具。

1、单独的信息和内容
单独的信息和内容格式为每条信息使用 2 个形状:

  1. 其中一个用于显示信息的名称和顺序,
  2. 另一个用于显示信息的内容(所包含的信息)。

这种格式的好处是,你可以专注于信息流,而不会在一开始就被信息内容所困扰。

首先只显示发送者和接收者之间的信息流(信息上有顺序号)。

然后在每条信息旁边的单独方框中显示每条信息的内容:


2、合并信息和内容
合并信息和内容格式使用单一形状来捕捉信息名称、顺序和内容。


当你想从一开始就关注每条信息的内容时,这种格式是不错的选择。

下载: