来自 Google 资深工程师 Joshua Bloch 的分享:API 设计最佳实践
为什么 API 设计如此重要?API 是一个公司最重要的资产。
为什么 API 的设计对程序员如此重要?
API 一旦发布,出于兼容性考虑,不能轻易地随心所欲进行修改,比如删除参数。
从 API 的上帝 – 设计者的视角出发,有助于提高代码质量。
一个优秀的 API 应该满足下列标准:
易学易用,甚至是自描述的,不需文档也能让新手快速上手。不易造成误解。后续维护者易于理解,满足开闭原则 – 能够很容易进行扩展。
如何设计一个好的 API
首先应该从收集需求出发。注意结合 API 实现的复杂度一起考虑。
作为第一步,首先给出需求规格文档,一页即可:
别指望你的 API 能让所有人满意。也不要指望发布后,它不会出任何错误——那是不可能的。
API 也应该遵循单一职责:如果你发觉很难根据你的 API 实现的功能给它取个合适的名字,这是一个不好的信号,很多时候说明你的 API 里面做了太多事情——试着把它们拆成多个 API。
信息封装 – 公有类尽量避免暴露公有字段出去,最大化信息隐藏
API 命名艺术 – API 的名称也是一门语言。
API 和文档的关系
合理使用继承和子类,不要滥用里氏替换原则
采用 fail fast 策略,尽可能早地抛出错误消息:
API 的数据都应该允许使用者通过字符串的方式访问
慎用重载
选用合适的 API 参数和返回类型
API 里的参数顺序也很有讲究
避免冗长的参数列表,参数如果超过 3 个,使用者就需要通过阅读文档才能消费了。
尽量返回不需要调用者进行异常处理的参数,比如空数组或集合,而不是 null
API 设计里的和异常处理相关的最佳实践
API 重构的最佳实践
API 设计和 Thread-local 相关的最佳实践
要获取更多 Jerry 的原创文章,请关注公众号 ” 汪子熙 ”: