来自Google资深工程师的API设计最佳实践

发布时间:2020-08-11 00:09:38 作者:i042416
来源:ITPUB博客 阅读:131

来自Google资深工程师Joshua Bloch的分享:API设计最佳实践

来自Google资深工程师的API设计最佳实践

为什么API设计如此重要?API是一个公司最重要的资产。

来自Google资深工程师的API设计最佳实践

为什么API的设计对程序员如此重要?

API一旦发布,出于兼容性考虑,不能轻易地随心所欲进行修改,比如删除参数。

从API的上帝 - 设计者的视角出发,有助于提高代码质量。

来自Google资深工程师的API设计最佳实践

一个优秀的API应该满足下列标准:

易学易用,甚至是自描述的,不需文档也能让新手快速上手。不易造成误解。后续维护者易于理解,满足开闭原则 - 能够很容易进行扩展。

来自Google资深工程师的API设计最佳实践

如何设计一个好的API

首先应该从收集需求出发。注意结合API实现的复杂度一起考虑。

来自Google资深工程师的API设计最佳实践

作为第一步,首先给出需求规格文档,一页即可:

来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践

别指望你的API能让所有人满意。也不要指望发布后,它不会出任何错误——那是不可能的。

来自Google资深工程师的API设计最佳实践

API也应该遵循单一职责:如果你发觉很难根据你的API实现的功能给它取个合适的名字,这是一个不好的信号,很多时候说明你的API里面做了太多事情——试着把它们拆成多个API。

来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践

信息封装 - 公有类尽量避免暴露公有字段出去,最大化信息隐藏

来自Google资深工程师的API设计最佳实践

API命名艺术 - API的名称也是一门语言。

来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践

API和文档的关系

来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践

合理使用继承和子类,不要滥用里氏替换原则

来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践

采用fail fast 策略,尽可能早地抛出错误消息:

来自Google资深工程师的API设计最佳实践

API的数据都应该允许使用者通过字符串的方式访问

来自Google资深工程师的API设计最佳实践

慎用重载

来自Google资深工程师的API设计最佳实践

选用合适的API参数和返回类型

来自Google资深工程师的API设计最佳实践

API里的参数顺序也很有讲究

来自Google资深工程师的API设计最佳实践

避免冗长的参数列表,参数如果超过3个,使用者就需要通过阅读文档才能消费了。

来自Google资深工程师的API设计最佳实践

尽量返回不需要调用者进行异常处理的参数,比如空数组或集合,而不是null

来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践

API设计里的和异常处理相关的最佳实践

来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践

API重构的最佳实践

来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践

API设计和Thread-local相关的最佳实践

来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践
来自Google资深工程师的API设计最佳实践

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

来自Google资深工程师的API设计最佳实践


推荐阅读:
  1. Google资深工程师推荐Python面试必须要看的15个问题
  2. 来自阿里P7岗Java优秀工程师分享的必备技能,你解锁了吗?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

api google 工程师

上一篇:mysql主从配置实现一主一从读写分离

下一篇:老菜鸟带你皮一下:你从来没有想过的Monkey测试!

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》