gpt4 book ai didi

domain-driven-design - CQRS设计中Command请求返回什么结果?

转载 作者:行者123 更新时间:2023-12-04 12:14:03 29 4
gpt4 key购买 nike

我一直在研究 CQRS,但我发现它限制了在 Web 应用程序中显示命令的结果。

在我看来,使用 CQRS,人们被迫刷新整个 View 或其中的一部分以查看更改(使用第二个请求),因为原始命令请求将只存储将来要处理的事件。

在 Web 应用程序中,命令请求是否有可能将它创建的事件的结果带回浏览器?

最佳答案

这个问题的标题的答案很简单:没有、无效或从网络浏览器/休息的角度来看 200 OK 与空体。

应用于系统的命令(如果更改成功提交)不会产生结果。如果您希望将业务逻辑留在服务器端,是的,您确实需要通过对服务器执行另一个请求(查询)来刷新数据。

但是,大多数情况下,您可以摆脱到服务器的第二次往返。拿一张表格,在其中修改一行并按下保存按钮。你真的需要更新表吗?或者,如果用户在博客文章上提交评论,只需将评论附加到 dom 中的其他评论,而无需往返。

如果您发现自己想要从服务器返回修改后的状态,则需要仔细考虑您要实现的目标。大多数场景都可以更改,因此一个简单的 200 OK 就足够了。

更新:关于您关于排队传入命令的问题。不建议将传入的命令排队,因为这可能会返回误报(命令已成功接收并排队,但当该命令尝试修改系统状态时,它会失败)。该规则有一个异常(exception),那就是如果您的系统将仅附加模型作为状态。如果命令有效,则可以安全地将系统状态的突变排队等待。

Udi Dahan 的名为 Clarified CQRS 的文章始终是有关此主题的好读物 http://www.udidahan.com/2009/12/09/clarified-cqrs/

关于domain-driven-design - CQRS设计中Command请求返回什么结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4570077/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com