来自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的原创文章,请关注公众号"汪子熙":
相关推荐
Google资深工程师深度讲解Go语言,
谷歌离线地图api,最新修改版,去除了谷歌跳出提示禁用本地api的功能
精品--Google资深工程师深度讲解Go语言 学习笔记
谷歌拼音输入法扩展API开发指南(中文版)
Google首席工程师Joshua Bloch谈如何设计优秀的API。
谷歌地图 离线api
采用离线的 Google Map API 加载离线水经注谷歌地图下载器的地图数据
go语言学习记录 - 代码学习自《Google资深工程师深度讲解Go语言》
精品--学习慕课网Go语言课程-Google资深工程师深度讲解Go语言
Android开发编程提示及图象界面设计最佳实践---来自google开发者大会的一些分享,绝对清晰,适合学习,从事安卓的都应该看的
Google Maps API编程资源大全
google地图中文api。该api为web api,不适用移动开发
包括像Google、微软这些公司,CodeReview都是基本要求,代 我一直认为CodeReview(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,...
谷歌地图Google Map API中文开发文档 V3
google语言翻译API例子
谷歌天气预报api实例 vb.net的
Google Earth API开发,Google Earth API开发Google Earth API开发Google Earth API开发
Google Map API 使用示例
本书从易到难、由浅入深、循序渐进地介绍了Google Maps API和Google Earth API的开发技术。本书知识讲解通俗易懂,并有大量的实例供读者更加深刻地巩固所学习的知识,帮助读者更好地进行开发实践。 本书共分为18...