![]() |
1
9
我的聚合中的命令方法返回void(关于CQS);因此,接收命令请求的其余端点只响应如下内容
Server sent events 从后端发送到UI;如果用户界面是基于web的,这很有用,因为可能会打开多个浏览器窗口,并且数据将在后台更新页面;很好,客户很满意。
关于在命令响应中包含来自读取端的一些数据:这取决于您的具体情况;我避免它,因为它意味着写作时阅读,这意味着我不能在更高的层次上把写和读分开;我希望能够独立地扩展读写部分。所以,a
使用CQR时,我从不发送整个聚合;您有读取模型,因此每个聚合在每个读取模型上都有不同的表示。因此,您应该为每个UI组件创建一个读取模型,这样您就可以保持&只发送显示在用户界面上的数据,而不发送包含任何人需要在任何地方显示的任何内容的类似上帝的对象。 |
![]() |
2
4
创建命令 使用创建命令时,您通常希望获得刚刚创建的对象的句柄,否则您将处于黑暗中,没有地方进一步操作它。
所有其他命令 客户端显然具有对象的地址。在从HTTP部分获得OK后,它可以简单地重新查询其位置。或者,您可以轮询该位置,直到有迹象表明该命令成功。它可能是一个资源版本id,一个康斯坦丁指出的状态,一个 Atom feed 等 还请注意,命令处理程序返回操作的成功状态可能更简单,但这是否真的违反了CQS仍有争议(同样,请参阅上面的答案)。 |
![]() |
3
1
事实上,最好有粒度命令和事件。 命令和事件应该是不可变的、可表达的对象,能够清楚地表达意图或过去的业务事件。如果对象恰好包含即将更改或已更改的数据,则这种方法效果最佳。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |