gpt4 book ai didi

java - 执行命令后客户端应用程序应采取什么操作?

转载 作者:行者123 更新时间:2023-11-30 02:46:26 27 4
gpt4 key购买 nike

背景

这个问题最好用一个例子来说明。假设我有一个客户端应用程序(例如桌面应用程序、移动应用程序等),它使用来自 Web 服务的信息。其中一个屏幕包含一个产品列表,当客户端应用程序启动并绑定(bind)到 UI 元素时,将从 Web 服务查询这些产品。现在,用户创建了一个新产品。这会导致客户端应用程序向 Web 服务发送命令以将该产品添加到数据库中。

问题

在客户端应用程序中,发出命令并成功后会发生什么?你是:

  1. 从服务中查询完整的产品列表并在客户端应用程序中刷新整个产品列表?
  2. 只查询两个新添加的产品并将其添加到产品列表中?
  3. 不查询,而只是使用客户端应用程序中可用的信息在 GUI 中创建新产品,然后将它们添加到列表中?

同样的问题也适用于更新。如果您更新产品,是否会收到服务更新成功的确认,然后只需让 GUI 更新产品而无需进一步请求服务?

编辑 - 添加其他详细信息

根据最初的反馈,结论似乎是采用最简单的方法,除非:

  1. 导致性能问题
  2. 对用户体验产生负面影响

我的应用程序有一个主要/重要部分,其中与应用程序交互的主要方式是在多个不同网格之间拖动网格记录。例如,将产品拖到另一个网格上将创建一个新订单,需要将其发送到服务。其中一些网格比标准网格更复杂。可以对记录进行分组,并且每个组都可以折叠/展开( see here )。在这种情况下,虽然可以通过服务非常快速地刷新网格,但这可能会导致可用性问题。当使用所有新数据刷新网格时,如果用户展开/折叠了任何组,则该组将会丢失。

因此,虽然我的应用程序中的大多数网格可能都可以立即刷新,但更复杂的网格需要更仔细地更新。我认为这将有助于选项 1 或 2(至少对于创建新记录)。我的一个想法是客户端应用程序可以为要随应用程序发送的新记录创建 GUID。这样,就不需要对服务进行后续查询,因为客户端应用程序已经拥有唯一的 ID。然后,客户端应用程序将等待服务的成功响应,然后再向用户显示新记录。

最佳答案

获取整个列表

我想这取决于请求/响应的成本。如果可能且高效,我总是会选择您的第一个选项(获取整个列表),直到出现性能问题。

As the saying goes :

  • The First Rule of Program Optimization: Don't do it.
  • The Second Rule of Program Optimization – For experts only: Don't do it yet.

只需涵盖更少的场景,编写更少的代码,维护更少的代码,因为无论如何您都需要“获取整个列表”服务。它还会返回“最新的产品列表”,以防其他客户同时添加产品。

在我看来,只有优点,直到出现性能问题。。最后三个词意味着这个问题只会产生意见,应该关闭......

关于java - 执行命令后客户端应用程序应采取什么操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40077553/

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