极客视点
极客时间编辑部
极客时间编辑部
113240 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/02:38
登录|注册

什么样的API设计是好的设计?

讲述:杜力大小:1.20M时长:02:38
日前,阿里研究员谷朴发文,分享了他们团队所认为的好的 API 设计。他们认为好的 API 有 3 个基础性的原则。所谓基础性的原则,是那些如果人们遵守了就可以让 API 在之后演进的过程中避免多数设计问题的原则。
1. 提供清晰的思维模型。API 是用于程序之间的交互,但是一个 API 如何被使用,以及 API 本身如何被维护,是依赖于维护者和使用者能够对该 API 有清晰的、一致的认识。这种状况实际上是不容易达到的。
2. 简单。在实际的系统中,尤其是考虑到系统随着需求的增加不断地演化,在绝大多数情况下,问题都是过于复杂的设计,而非过于简单,因此强调简单性一般是恰当的。
3. 容许多个实现 。一般来说,在讨论 API 设计时常常被提到的原则是解耦性原则或者说松耦合原则。然而相比于松耦合原则,这个原则更加有可操作性。如果一个 API 自身可以有多个完全不同的实现,一般来说这个 API 已经有了足够好的抽象,和自身的某一个具体实现无关,那么一般也不会出现和外部系统耦合过紧的问题。因此这个原则更本质一些。
谷朴还以 POSIX File API 为例,谈了谈一个优秀的 API 的成功之处。
首先,File API 已经有几十年历史(从 1988 年算起将近 40 年),尽管期间硬件软件系统的发展经历了好几代,这套 API 核心保持了稳定。谷朴称,这是极其了不起的。
其次,API 提供了非常清晰的概念模型,每个人都能够很快理解这套 API 背后的基础概念,什么是文件,以及相关联的操作(open, close, read, write),清晰明了。
然后,File API 支持很多的不同文件系统实现,这些系统实现甚至于属于类型非常不同的设备,例如磁盘、块设备、管道(pipe)、共享内存,等等。这些设备有的是随机访问的,有的只支持顺序访问,有的是持久化的有的则不是。然而所有不同的设备不同的文件系统实现都可以采用同样的接口,使得上层系统不必关注底层实现的不同,谷朴表示这是这套 API 强大的生命力的表现。
例如同样是打开文件的接口,底层实现完全不同,但是通过完全一样的接口,不同的路径以及 Mount 机制,实现了同时支持。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
98
沉浸
阅读
分享
手机端
快捷键
回顶部