欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

来自Google资深工程师的API设计最佳实践 GOOGLEAPIChrome代码重构架构设计 

程序员文章站 2022-03-11 12:37:46
...

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

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

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

如何设计一个好的API

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

API和文档的关系

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

慎用重载

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

API重构的最佳实践

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 
 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计 

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

 
来自Google资深工程师的API设计最佳实践
            
    
    
        GOOGLEAPIChrome代码重构架构设计