[API] 设计良好 API 的特点

来源:互联网 发布:javascript书 编辑:程序博客网 时间:2024/05/18 07:51

原文链接

设计良好 API 的特点


这里探讨的 API 均为系统边界的API设计,而对于内部 API 来说不在探讨范围之内。

变动困难

API 就像一个人一样,我们和一个API打交道的时候需要了解这个人的特性偏好等,
有的人很好相处,而有的人让人很头疼,尤其是你不得不和他打交道的时候。

和人一样,如果你不得不和他打交道,要改变他的秉性是很痛苦的,人的“本性难移”, API 也一样,一旦发布了,要改变的成本就很大很大。

好的 API 应该具有:

  1. 易于学习
  2. 即使没有文档也易于使用
  3. 不易误用:这一点很重要,要减少使用者的心智负担
  4. 使用 API 的代码易于维护。这个有点不一样,不是 API 本身易于维护,而是 API 的友好度。
  5. 比如接口功能单一,使用简单,使用者的代码也会相应的更易于维护
  6. 易于满足需求:API 的完备性和正交性。能够容易的满足需求,完备性保证功能完整,
  7. 正交性保证接口的简洁性,不需要为所有的需求提供接口,而是由用户去组合。
  8. 易于扩展

怎么样设计良好的 API


基本原则:

  1. 专一:一个 API 的功能应该是单一的,需要能够很容易的解释和理解,也就会更好用。
  2. 尽可能的小:小有很多的优势,易于理解和维护。
  3. 尽量少的外部依赖:减少使用者的成本
  4. 设计不被实现影响:不要暴漏实现细节给用户
  5. 竟可能少的暴露,不止是内部细节,对于不必要的接口尽量不要发布,比如使用不多的功能,
  6. 可以暂时不暴露接口。
  7. 良好的命名:尽量做到自描述。
  8. 完善的文档
  9. 考虑性能