第一章API简介——读书笔记

1.1 什么是API

概括的说,API定义了一些可复用的模块,使得 各个模块化功能块可以嵌入到最终用户的应用程序中去。

1.1.2 C++中的API

严格来说,API只是简单描述了如何与组件进行交互。也就是说,它对某个组件进行抽象,并提供功能说明。事实上,许多软件工程师更喜欢将API这个缩写扩展为Abstract Programming Interface,而非Application Programming Interface。

C++ API通常会包含如下的元素:

(1)头文件:一组.h头文件。头文件定义了接口,使得客户端代码能够针对该接口进行编译。开源API还包括API实现的源代码(.cpp文件)

(2)类库:一个或多个静态库或动态库文件,它们提供了API的具体实现。客户端可以把它们的代码和这些库文件进行链接,从而为它们的应用程序添加相应的功能

(3)文档:如何使用API的概述信息,通常包括为API中所有的类和函数自动生成的文档

1.2API设计上有什么不同

下面列举一些在API开发中的关键因素:

  • API是为开发者设计的接口,如同GUI是为用户设计的接口一样
  • 修改API时,必须尽可能保证向后兼容
  • 要有变更控制流程
  • 良好的文档必不可少,尤其是当不提供实现的源代码时
  • 自动化测试同样也很重要。当你对API的实现进行重大修改时,如果有一套完整的回归测试验证并未改变所需的API行为,那么就会更有信息地保证不会让客户的程序崩溃

1.3为什么使用API

在软件项目中为什么要关注API,这一问题可以从两方面理解:

  • 为什么要设计编写API
  • 为什么要在应用中使用其他人提供的API

下面的小节将回答这两方面的问题,并指出在项目中使用API的各种好处

1.3.1 更健壮的代码

构建API让其他开发人员使用你开发的模块的好处:

  • 隐藏实现
  • 延长寿命
  • 促进模块化
  • 减少代码重复
  • 消除硬编码
  • 易于改变实现
  • 易于优化
1.3.2 代码复用
1.3.3 并行开发

1.4 何时应当避免使用API

如果编写的是不需要和其他客户端通信的内部模块,那么为模块创建并维护稳定公有接口的额外开销就不值得了。

另一方面,当你想在应用程序中使用第三方API时,面临如下这些情况时,你应该花精力自己实现代码或寻找替代的解决方案:

  • 许可证限制

  • 功能不匹配

  • 缺少源代码

  • 缺乏文档

内容出自《C++API设计》([美] Martin Reddy 著 刘晓娜 臧秀涛 林建 译)

如有侵权,联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值