events - 如何在 DDD 中通过订单进行交货
问题描述
我对 DDD 原则还是很陌生,即使我现在使用它已经快 2 年了。我在一家相当大的公司工作,我们试图将所有遗留的东西一块一块地重构到单独的有界上下文中。
在我们的领域中最大的领域是:位置、产品、报价、订单、票(交付)、付款、交付
我们出售的东西不涉及太多细节。
一位同事制作了一个模型,其中订单行与交货具有 1:M 关系。
流程如下:
假设:创建的订单永远不会改变。当订单发生变化时,一个新的订单将被发送到我们的 api。
- 下订单。
- 发出的命令将发送到所有需要该信息的服务。( subscribed ) 订单在其全部荣耀中发送,其中包含包含所有属性的完整订单,我们不仅发送接收者需要的内容。我认为这已经很糟糕了。订单行包含需要交付的方式。它们的交付方式不是客户的选择,而是由系统决定的。我们应该只向接收者发送最低限度的信息。
- 收到付款后,这将通知订单
- Order 充当协调者并通知 Ticket 制作票证
- Order 通知 Delivery 开始交付所有东西(Delivery 有完整的订单)
- 流程结束
我想知道这是否还不错。我想知道交货没有按顺序处理。我认为每个订单线都需要有一个特定的类型来附加某种行为逻辑。但不是直接依恋。例如,需要在硬拷贝上的票会有一个标记,说明它的硬拷贝。交付将知道,由于它是硬拷贝,因此需要通过邮寄而不是通过电子邮件交付。
现在正在做的是订单将立即指定并将跨越有界上下文。
这就是我的想法,但我之前错了,我在纠正之前尝试对某些事情非常确定。
已经非常感谢这里的帮助。
解决方案
推荐阅读
- mysql - MySQL行到列不聚合
- konvajs - Konva React - 访问“clickStartShape”
- celery - Celery 存储结果多长时间,我可以限制这个时间吗
- ios - 付款成功后迅速获取条带费用ID
- angular - 在 Angular 中将 iframe 视频加载为图像
- android - 如何跟踪android应用程序中的每一次合理点击?
- c# - 如何在领域驱动设计中使用 Entity Framework Core 处理包含
- javascript - 从不同页面重定向后显示相关帖子
- html - 是否可以隐藏破折号视频源网址?
- python-3.x - 如何记录我的屏幕,将其编码为 HEVC,然后将其插入 webrtc 以使用 aiortc-python 进行流式传输