代码之家  ›  专栏  ›  技术社区  ›  Alexander Ljungberg

web服务客户端应用程序错误处理范例的正确术语是什么?

  •  1
  • Alexander Ljungberg  · 技术社区  · 16 年前

    假设我们的应用程序与iTunes类似,但是是在线的。用户运行一个基于JavaScript的客户端,该客户端通过AJAX与web服务交互。用户可以做的事情之一是创建“相册”,然后在其中放置“歌曲”。在API级别,这表现为一个API调用创建一个新唱片集,然后一个或多个调用将现有歌曲与新唱片集关联。

    现在,传统客户端可能会暂停整个应用程序,直到确认相册已创建。要创建snappier客户端,我们可以乐观地假设album creation API调用将成功,并立即在用户列表中显示新相册。即使创建新专辑的API调用在幕后仍处于挂起状态,用户也可以开始将歌曲拖动到新专辑中。当API到达那里时,它将迎头赶上。

    在不太可能发生错误的情况下(互联网连接可能中断),应用程序会通知用户,暂停并重试操作,直到成功或用户退出。如果用户退出,应用程序就会忘记所有未提交的操作,并且用户会丢失一些操作。

    这种策略叫什么名字?关于这个问题有哪些好的文献?互联网链接?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Achim    16 年前

    我认为你所描述的可以被看作是某种“可靠的消息传递”。我不知道它是用于基于ajax的应用程序的,在我看来,您的设计有一些弱点:

    假设您不会只有两个API调用,而是三个或更多。想象一下,错误处理和报告将变得多么复杂。对API方法的调用应该是某种原子操作,因此如果将来的逻辑依赖于它,则应该等待响应。

    如果你想让你的客户变得更敏捷:你为什么还要执行“new album”呼叫?如果在客户端中管理相册更新,则在发送相册内容之前无需创建相册。

    对于这样的客户机来说,一个好的API与“服务器上”API有所不同。也许它可以帮助您了解Fowlers的“工作单元”模式。它适用于数据库,但在我看来,这个想法也适用于您的设置。