Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API设计之立即销毁 #95

Open
xinglie opened this issue Dec 16, 2021 · 0 comments
Open

API设计之立即销毁 #95

xinglie opened this issue Dec 16, 2021 · 0 comments
Labels

Comments

@xinglie
Copy link
Owner

xinglie commented Dec 16, 2021

接上篇《前端交互之立即响应》#93

个人认为在API设计上有些API也是需要做到立即响应的,不能有异步等其它非及时响应的流程或过程,销毁就是其中之一

销毁无非分以下几类

用户级别

用户主动关闭一些内容,比如用户主动关闭了视频播放器,关闭了Excel窗口等,那么这些关闭的动作就是销毁API的调用,除了必要的关闭提醒外(如:文件内容未保存,是否离开?),开发者在实现关闭这个销毁API时,就需要立即响应执行,否则用户点了关闭按钮,窗口还在那里展示,会是一个什么样的体验?

开发者级别

做为应用的开发者(程序员),我们免不了会使用一些第三方的组件或插件,当我们需要销毁这些组件或插件时,肯定希望这些组件或插件立即销毁,否则我们调用了相关的关闭或销毁方法,组件或插件的实例还一直存在,是不是让人抓狂?

系统级别

当系统资源不够时,会自动关闭一些不太活跃的应用,我们在系统自动关闭时,也需要立即响应,不应有阻止自动关闭的动作在里面

以上是从提供方的角度,即API设计者的视角来讨论的,即提供方在涉及销毁的API上应该是立即执行,不应该有异步的存在。因为一但有了异步的存在,调用方也必须以异步的方式调用,会导致整个链路上都使用异步。

那如果从使用者的角度,在关闭或销毁时想使用异步怎么办?比如用户点击关闭按钮,播放一个动画后再关闭。

这个权力应该交与调用方控制,如果调用方想在关闭前播放一个动画再关闭,则关闭时通知调用者,调用者播放动画完成后再调用真正的销毁,这个事情在调用方里做,不在提供方里做。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant