前提:
建议在 CQRS + DDD + ES 样式的应用程序中使用基于任务的屏幕,这些屏幕会引导用户并捕获意图。
这些任务屏幕也可称为感应用户界面。 UI设计指南的一些示例可以帮助您创建现代的,用户友好的应用程序:
Microsoft Inductive User Interface Guidelines 和
我理解它的方式,一般来说,任务应与在服务器上等待的命令或功能对齐。
例如,如果用户对客户 [名字]进行了更改,一般来说这应该是一个孤立的任务< / strong>弹出窗口等提供此事件的机制,仅此事件。
问题:
兼1:
在用户不只是对客户 [名字]进行更改但实际创建新客户的情况下即可。当然用户不会来自[名字] =&gt;到[姓氏] =&gt;到[地址] =&gt;到[email]等 - 在类似于样式的向导中,每个向导屏幕都映射到命令。
a)当隔离单个任务时,屏幕是如何布局的?例如,在创建新的客户或广告资源项时。
b)在这种情况下,客户端和服务器上与命令相关的代码和/或逻辑流程是什么样的,记住显而易见的拉动与'正常&#34;保持一致任务基于系统其余部分的流程?毕竟,这些只是转换为活动源中的活动或活动。
部分-2:
如果用户不只是更改客户 [名字],而是他们的[姓氏],[地址],和[电话号码] - 他们用户一直处于脱机状态。
我认为最终,用户仍然可以在应用程序的不同区域执行多项任务的实际工作,同时脱机,并在重新联机时执行强大的冲突解决方案。 / p>
a)用户时,与客户端上的命令相关的代码和/或逻辑流程和/或工件是什么?在本地处理这些事件(IndexDb,队列等)时离线?和
b)连接是什么样的,离线(重试)时它是如何起作用的?
c)与客户端和服务器端上的命令相关的代码和/或逻辑流程和/或工件是什么,什么时候用户重新上线?
d)连接是什么样的,以及如何在线恢复时的行为(重新建立连接,如果确定客户端端 ViewModel 是陈旧的, WebSockets 等。)?
参考图:
答案 0 :(得分:0)
我理解它的方式,一般来说,任务应与在服务器上等待的命令或函数对齐。
或者有时事件,但基本想法是正确的。
用户肯定不会来自[名字] =&gt;到[姓氏] =&gt;到[地址] =&gt;到[email]等 - 在类似于样式的向导中,每个向导屏幕都映射到一个Command。
不,我们通常想要比这更粗糙的谷物。有些任务只需要一个属性,但有几个属性是常见的情况。
当隔离单个任务时,屏幕是如何布局的?
将有凝聚力的单位组合在一起;考虑亚马逊订单工作流程 - 实际上收集了几组不同的数据(订单本身,付款选择,指定新的付款方式,指定送货地址,指定送货优先级......)。
用户离线时一直都是。
见CQRS, not just for server systems;但是从广义上说 - 将从用户收集的数据视为事件(FormSubmitted)而不是命令。离线设备是跟踪用户离线时所执行操作的权限;但不可用的服务器仍然是这些事件后果的权威。因此,当客户端重新连接时,服务器负责合并。
准确的详细信息可能因域而异 - 例如,在仓库系统中,离线设备一直在收集有关库存的信息,您可以通过引发异常报告来处理服务器在合并期间观察到的不一致性(设备注册此包退出仓库,但我们没有进入仓库的记录)。