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