《C++API设计》读书笔记(1):API简介

前言

虽然书名上写着“C++”,但是正如【译者序】所说:“本书所及,已经超出了标题所指的C++API设计——好的API所具备的特性其实是语言无关的”。

本书有12章,我想分章节做读书笔记,按自己的思路记下我最关注的内容。

什么是API?

API(Application Programming Interface)是一个明确定义的接口,提供了对某个问题的抽象,以及客户与解决该问题的软件组件之间交互的方式。

类似于“契约和承包人”:承包人提供了API并承诺调用它将完成某项任务,你不必关心它具体是怎么做的,你只负责挑选合适的API就行。

“API开发”相较于“普通软件开发”有什么不同?

  • API是面向开发者设计的接口。(而普通软件面向的是一般用户)
  • 多个应用程序会共享同一个API。这意味如果API出现错误将会影响多个程序。
  • 修改API时,必须尽可能保证向后兼容。你不知道别人在哪使用了你的API。
  • 也出于向后兼容的需求,所以在开发流程上要控制变更流程。(即审核更严格)
  • API生存周期一般比较长。前期投入的成本比较高,但做好后会降低长期成本。
  • 需要良好的文档。
  • 自动化测试。

我为什么要编写API?

主要目的是隐藏该模块内部的实现细节。这有很多好处:

  • 在未来可以自由修改内部实现,而不影响外部调用。
  • 促进模块化
  • 减少代码重复
  • 易于在之后优化

我为什么要使用别人的API?

主要目的就是代码复用,而非从零开始造轮子。

(现代应用程序通常都是基于很多API建立起来的,而这些API又依赖于其他API)

团队为什么要使用API?

主要目的就是并行开发

比如你可以先编写一个占位用的API,其他人在开发时可以调用这个占位的API,而非等待你完全写好API后才开始他们的工作。

什么时候我不要编写API?

编写API需要花费更多的精力,如果你没有提供给他人接口的需求,就不需要。

但是——这并不是编写劣质代码的理由。从长远来看,坚持API的设计原则还是值得的。(所以说还是尽量编写好的API)

什么时候我要小心使用API?

  • 许可证限制。
  • 功能不符合我预期
  • 缺少源代码。这导致出了问题后我无法修复。
  • 缺少文档,这导致我无充分信任它的行为。

猜你喜欢

转载自blog.csdn.net/u013412391/article/details/128427512
今日推荐