


作者:[美] 马丁·雷迪(Martin Reddy)著 张晋豫 何荣华 陈晓伟 译
定价:139元
印次:1-1
ISBN:9787302711865
出版日期:2026.06.01
印刷日期:2026.06.18
图书责编:王军
图书分类:零售
"《C++ API设计》(第2版)全面探讨了应用程序编程接口(API)的完整开发生命周期,涵盖从初始设计、实现、测试、文档编写,到发布、版本控制、维护及废弃的全流程。本书是**系统讲解C++ API开发策略的**著作,深入解析接口设计、版本管理、脚本支持及插件扩展性等核心技术。作者基于大规模协作软件项目的实践经验,提炼出能够构建长期性稳健代码的API设计实用技巧,为开发者个人及企业提供可落地的模式与实践。第2版全面更新至C++ 23标准,新增两章:一章探讨并发与多线程主题,还有一章演示C++ API与Objective-C/Swift代码的互操作性。本书聚焦于多种API风格与设计模式,助你打造缜密、长效的类库。每个概念均辅以丰富的C++代码示例。 图书特色: ?**系统讲解C++ API开发策略的著作,涵盖设计、版本控制、文档编写、测试、脚本支持及扩展性等核心内容。 ?每个概念均配有翔实的代码示例,并提供完整、可运行的示例代码。 ?全面解析多种API风格与设计模式,重点探讨大型长期性项目的实用、高效设计方案。 ?更新拓展资源获取方式,确保示例代码与现代编译器及配套工具完全兼容。"
Martin Reddy拥有计算机科学博士学位,在软件行业拥有30多年的从业经验。他是电气和电子工程师协会(IEEE)会员、亚太人工智能协会(AAIA)会员以及美国计算机学会(ACM)杰出工程师,已获得10项专利授权,发表过40余篇专业论文并出版2本著作。Reddy博士是人工智能初创公司PullString的联合创始人兼首席技术官(CTO),是公司的技术研发负责人。2019年,该公司被苹果公司收购。在苹果公司任职期间,他作为软件架构师负责Siri虚拟助手核心组件的架构设计与API开发。此前,Reddy博士在皮克斯动画工作室工作了6年,担任内部动画系统首席工程师,参与制作的多部影片获得奥斯卡金像奖及提名,包括《海底总动员》《超人总动员》《汽车总动员》《美食总动员》等;他还是《超人总动员》中“超能先生”的发型模特。Reddy的职业生涯始于SRI国际公司,在职期间参与了分布式3D地形可视化系统的研发,并与他人共同制定了虚拟现实建模语言(VRML)和可扩展3D(X3D) ISO(国际标准化组织)的地理空间功能规范。斯特拉斯克莱德大学曾授予Reddy“年度杰出校友”称号。
中文版推荐序一 对于大型软件,要想降低系统复杂度、使软件的各个组件可以独立演化,就需要在各个组件之间提供良好的编程接口——这就是所谓的 API ,其设计好坏是决定软件能否做到高内聚、低耦合的关键因素。对于平台、程序库和框架(不管是否开源),这会直接影响软件生态能否蓬勃发展。这本书全面总结了API 设计的最佳实践,它的出版令我倍感欣喜。 你可能会想,我只是一个普通的 C++ 程序员,也需要学习 API 设计吗?答案通常是肯定的。借用本书作者的话:“如果你编写的 C++ 代码被其他工程师所依赖,你就可以称作 API 设计师,而本书就是为你编写的。”如果 API 设计得不好,使用者(可能是你身边的同事)上手会更困难,他们的代码会与你的代码产生不必要的耦合,影响整体的可维护性。为了不让你的伙伴或客户感到痛苦,任何需要在代码上与他人合作的工程师都需要设计良好的 API。 在人工智能大行其道的今天,API 设计变得分外重要,因为目前的大语言模型在实现层面往往已经做得相当不错了,但在接口设计上,通常还是缺乏品位和远见。一个软件工程师如果不想失业的话,就需要在系统设计上多动脑筋,API 设计就是其中的重要一环。好的 API 设计会把接口和实现分开,使得实现的修改几乎不影响调用侧代码。这样,人和大语言模型都不必关心实现细节,从而同时降低人的认知负担和模型的上下文消耗,使模型修改代码时更加轻松——毕竟,大语言模型与人是不同的,它通常有一个硬上下文限制,一旦到了这个限制,其能力就会急剧退化,其后果远比人出现判断偏差时严重。 本书以 C++ 为基准语言,但书里谈到的原则对各种语言的开发者同...
第1章 概述 1
1.1 什么是API 1
1.1.1 契约和承包商 2
1.1.2 C++中的API 2
1.2 API设计有什么不同 4
1.3 为什么使用API 6
1.3.1 更健壮的代码 6
1.3.2 代码重用 7
1.3.3 并行开发 8
1.4 何时应该避免使用API 10
1.5 API示例 11
1.5.1 API层次 11
1.5.2 真实示例 14
1.6 库、框架和软件开发工具包 15
1.7 文件格式和网络协议 16
1.8 关于本书 17
第2章 特性 20
2.1 问题域建模 20
2.1.1 提供良好的抽象 20
2.1.2 关键对象建模 22
2.1.3 解决核心问题 24
2.2 隐藏实现细节 25
2.2.1 物理隐藏:声明与定义 25
2.2.2 逻辑隐藏:封装 27
2.2.3 隐藏成员变量 28
2.2.4 隐藏实现方法 31
2.2.5 隐藏实现类 33
2.3 最小完整性 35
2.3.1 不要过度承诺 35
2.3.2 拒绝重复 36
2.3.3 便利的API 37
2.3.4 谨慎添加虚函数 39
2.4 易于使用 41
2.4.1 可发现性 41
2.4.2 难误用 42
2.4.3 一致性 44
2.4.4 正交 46
2.4.5 稳健的资源分配 49
2.4.6 平台独立 52
2.5 松耦合 53
2.5.1 仅通过名称耦合 54
2.5.... 查看详情
《C++ API设计》(第2版)以 API 为主轴,从基本概念、原则、设计风格等出发,深入语言底层特征,回答了性能、版本、测试等“必答题”,并扩展到库、插件、脚本绑定及生态等更广的范围, 涉及一线开发实践的诸多方面。难得的是,这样一本容易写“虚”的书读来并不让人觉得空,而是结合作者在 3D 引擎等系统软件开发领域的实战经验,将观念和原则落到了 C++ 开发实处。

