更新 knowledge.md

This commit is contained in:
ycl
2025-09-04 16:43:02 +08:00
parent e839e1e8a0
commit b8255ca3a0

View File

@@ -1409,7 +1409,7 @@ class CreateUserBto { //对应实体user
#### **2.17 领域消息DomainMessage)** #### **2.17 领域消息DomainMessage)**
- **定义与用途:** TOCO支持领域消息通过创建和订阅领域消息可以监听聚合对象的状态变化创建、删除、更新)TOCO会自动生成消息的发送逻辑 - **定义与用途:** TOCO支持领域消息通过创建和订阅领域消息可以监听聚合对象的状态变化创建、删除、更新)TOCO会自动生成消息的发送逻辑
- **关键配置:** 名称(小写字母+下划线), 由于消息是全局可见所以TOCO限制了名称项目级别不能重复; **注意** 在监听状态变化的时候不要命名为某个字段的变更,比如 order_payed, 因为实际上是order表的任意变更都会受到消息因此命名为order_changed更准确 - **关键配置:** 名称(小写字母+下划线), 由于消息是全局可见所以TOCO限制了名称项目级别不能重复; **注意** 在监听状态变化的时候不要命名为某个字段的变更,比如 order_payed, 也不要按照业务语义命名例如order_payed_complete,因为实际上是order表的任意变更都会受到消息因此命名为order_changed或order_updated更准确的表达了消息的触发语义 同理对于create事件一般命名为 xxx_created对于delete时间一般命名为 xxx_deleted
- **与聚合的关系:** 每个聚合下可以定义多个领域消息,每次可以监听聚合下面其中一个实体的状态变更 - **与聚合的关系:** 每个聚合下可以定义多个领域消息,每次可以监听聚合下面其中一个实体的状态变更
- **如何创建/生成:** 创建领域消息,需要先去顶聚合,然后确定需要监听的实体以及监听的变更类型 - **如何创建/生成:** 创建领域消息,需要先去顶聚合,然后确定需要监听的实体以及监听的变更类型
- **最佳实践** 如果只是字段区别,应该修改现有的领域消息,增加相应的字段即可,而不是新创建一个领域消息; - **最佳实践** 如果只是字段区别,应该修改现有的领域消息,增加相应的字段即可,而不是新创建一个领域消息;