优秀API设计的十大原则

开发
每个软件开发人员都使用API。“优秀”的API设计就像魔法。不过,我不知道有多少人可以解释为什么有的API很复杂、很难学,而有的则干净、简单、使用起来堪称是一种快乐。关于这个问题,我将在文中回答,并提供优秀API设计的十条法则。

每个软件开发人员都使用API。“优秀”的API设计就像魔法。不过,我不知道有多少人可以解释为什么有的API很复杂、很难学,而有的则干净、简单、使用起来堪称是一种快乐。关于这个问题,我将在文中回答,并提供优秀API设计的十条法则。

1.只做你今天需要的

这是最***的规则。只解决今天必须解决的问题,最小化需要完成的答案。解决明天的问题的诱惑力是巨大的。但是一定要顶住诱惑!不要提前发布代码,重点是注重缩小发布周期。如果需要花几个小时的时间来回答新问题,那么就不用再猜测明天会出现什么问题了。

2.API模块化

将大型问题转化为规模较小的、可单独解决的问题。模块化API更容易学习,并且可以随时间而改变。你可以用新模块替代旧模块。可以一个一个地教导模块。也可以将API的实验部分从稳定或传统的部分中单独分出来。

3.使用结构化语法

使用结构化的API语法:用thing.action或thing.property代替do_action_with_thing。语法将自然而然地适应模块化的方法,其中每个模块是一个类。

4.使用自然语义

不要发明新概念。只使用开发人员众所周知的概念,作为类系统的基础。如果你发现自己需要解释概念,那说明你出错了:要么你在解决以后的问题,要么你正在错误地构建API。

5.API的自我约定

每个类都要严格使用相同的样式和约定。一致性是指当一个人学会这一个类时,他就能够融会贯通地掌握全部的类。文档化约定,让它们成为贡献者必须的标准。

6.API的可扩展性

易扩展性有许多好处,并不仅仅在于受到贡献者的欢迎。它还可以让你延缓实现功能,因为“如果需要的话,后面再添加也很方便”。不需要的功能就不添加,这也是一种双赢。

7.完全测试

每个类和方法必须经过恶意代码的完全测试。要像写代码一样写测试,然后像API提供给外界约定文档一样使用测试。每当代码改变的时候就运行这些测试。不要担心代码覆盖率。重要的是外部约定。也可以考虑使用约定生命周期。

8.分层式成长

保持API突出重点,然后在顶部将新的API分层,以便于它们能随着时间的推移成长。可扩展性并不意味着***期的成长。明确API的范围,并在范围内执行。

9.保持简单易用

最终的测试要看API的简单易用程度。你写的例子,能不能让你的代码看起来更简单?你是不是强迫用户说明他们不在乎的选项?有没有毫无价值的额外步骤?要注重约减少API的可视面积。

10.保持可移植性

不要让系统概念泄漏到API。整洁有目的地抽象:这个API可以运行在任何操作系统上。API必须能够隐藏实现,但要注意第4条规则,以及要使用自然抽象。

欢迎大家说说自己的看法。

 英文原文:Ten Rules for Good API Design
 

责任编辑:王雪燕 来源: 码农网
相关推荐

2015-09-23 17:12:18

API设计原则

2020-06-09 07:00:00

面向对象编程编程原则

2011-09-15 13:05:26

2021-02-05 10:24:48

电脑维修系统备份

2012-03-15 11:15:13

Java设计模式

2009-04-16 13:32:07

Nehalemintel服务器

2012-03-07 11:03:13

Java设计模式

2012-03-05 13:58:34

设计模式里氏置换

2012-03-07 10:40:19

Java设计模式

2010-06-30 10:16:56

UML建模

2011-07-29 17:36:25

程序员

2024-06-11 08:00:00

2011-09-07 09:21:01

设计模式

2012-03-08 10:57:00

Java设计模式

2023-07-11 14:41:04

2011-07-19 18:13:15

高效数据库

2020-09-18 11:25:43

智能

2010-09-09 13:54:06

DIV CSS

2012-03-12 16:10:26

Java设计模式

2009-04-15 09:07:00

服务器选购服务器选型Nehalem
点赞
收藏

51CTO技术栈公众号