CQRS for commands 点亮逻辑
CQRS for commands light on logic
在使用 CQRS、域驱动设计和事件源实现域时,是否值得为几乎没有域逻辑的命令创建命令、事件、聚合和命令处理程序,例如如果我有要求说,创建一个组,其中唯一的要求可能是确保组名不为空,在这种情况下是否需要有一个组聚合、一个 CreateGroup 命令、一个 GroupCreated 事件和一个 CreateGroupCommandHandler ?
即使领域是轻逻辑的,可以这么说,建模聚合(内存中持久性、约束管理等)和事件(意图建模、业务事务日志 + 审计日志、集成)带来的价值等)仍然适用。此外,将命令消息与事件消息分开建模的原因仍然适用(这是关于消息的意图,它们可以独立发展)。更重要的是,逻辑领域的光,可以说可能并不总是如此。
我认为可能没有明确的 class 表示命令处理程序。聚合映射的命令可以通过其他方式完成。
但是,对于域不管理约束的情况,例如在事件确实是隐式外部的情况下,例如如果这些组在别处管理并且只需要复制到我们的域,那么只需要一个事件就足够了。
在使用 CQRS、域驱动设计和事件源实现域时,是否值得为几乎没有域逻辑的命令创建命令、事件、聚合和命令处理程序,例如如果我有要求说,创建一个组,其中唯一的要求可能是确保组名不为空,在这种情况下是否需要有一个组聚合、一个 CreateGroup 命令、一个 GroupCreated 事件和一个 CreateGroupCommandHandler ?
即使领域是轻逻辑的,可以这么说,建模聚合(内存中持久性、约束管理等)和事件(意图建模、业务事务日志 + 审计日志、集成)带来的价值等)仍然适用。此外,将命令消息与事件消息分开建模的原因仍然适用(这是关于消息的意图,它们可以独立发展)。更重要的是,逻辑领域的光,可以说可能并不总是如此。
我认为可能没有明确的 class 表示命令处理程序。聚合映射的命令可以通过其他方式完成。
但是,对于域不管理约束的情况,例如在事件确实是隐式外部的情况下,例如如果这些组在别处管理并且只需要复制到我们的域,那么只需要一个事件就足够了。