大家好,我是吴咏炜,先祝大家新年快乐!也很开心在 2025 年伊始跟大家分享一下:我的新书《C++ 实战:核心技术与最佳实践》已经在各大网店全面上架!
因为 12 月中旬预售过一周签名版,想必有一部分朋友已经拿到了签名版——签名版比普通版的发货早了一点点,在此,感谢大家对这本书的喜爱。鉴于有更多的朋友并不认识我,也不认识这本书,因此,在新书上架之际,我重新来介绍一下这本书,也介绍一下我自己。
1. 为何写这本书
从 Bjarne Stroustrup 博士把他的“带类的 C”重命名为“C++”开始算,C++ 已经有了超过 40 年的历史。这些年来,虽然也有不少起起落落,但 C++ 一直是一种非常重要的编程语言,是计算机世界里很多基础设施背后的基石。根据 TIOBE 网站,C++ 自 1987 年来的最差排名是第 5 名,并多次占据榜眼和探花之位。在多次起起伏伏之后,C++ 在 2023 年又回升到了第 3 名的位置,超过了Java,并赢得 2022 年“年度编程语言”(Programming Language of the Year)的称号,展示了它长盛不衰的生命力。
已有好些年,我每年在 C++ 大会上进行演讲,介绍 C++ 方面的知识。在 2019 年,我开始在“极客时间”上开设专栏,专门介绍现代 C++ 的一些知识点。在随后的几年里,我也做了不少 C++ 方面的培训和技术咨询工作。于是,在写了几十年的 C++ 代码之后,我终于觉得,可以把自己对 C++ 的认知写成书,让后来者可以少走一些弯路。
这是本书的书封
封面上有个狮子,你可以称它“狮子书”
这是参考大部分读者的喜好最后选定的
2. 这本书有何特色,适合哪些朋友阅读
当然,C++ 的书籍已经有很多了。本书的特点是什么?或者说,什么样的 C++ 学习者应该学习本书?
简单来说,本书偏向实战,从代码和使用场景的角度来讲解 C++ 特性,而非试图去对所有 C++ 的特性进行系统描述。我认为编程语言的学习方式应该更接近外语,而不是数学。我不会像 cppreference.com 一样描述所有的语法细节,而是根据我在软件项目获得的经验,来阐释某种特性存在的原因和适用的场景。当读者了解了我讲解的概念、方法之后,要进一步了解语法上的细节,可自行查阅网站——全面、详尽不是我的意图。
读本书所需的预备知识(复习和快速检查) 对象生存期和 RAII(C++ 最重要的特性) 移动语义(现代 C++ 最重要的新特性,全面影响代码组织)
模板基础(现代 C++ 里到处是模板,即使你不会写,也得会用)
标准模板库(STL)和相关知识(效率利器)
视图(略新,也有一定使用风险,但至少比指针要好用)
智能指针(全面替代有所有权的裸指针和手工 new/delete)
现代 C++ 的其他一些重要改进(初学者友好的特性和重要的新库)
不同的错误处理方式(契约、异常的概念,及不使用异常的一些方法)
如何传递对象(引用传参,还是值传参?)
并发编程(应对多核世界的挑战)
异步编程(一种不同的思维方式,但可以更好地利用资源)
C++ 程序员应当掌握的一些基础工具(最后稍稍讨论一下工程问题)
因此,本书的目标受众是有一定编程经验的程序员。我期望你有基本的 C 和 C++ 知识。我也期望你在使用 C++ 时遇到过问题、踩过坑,并希望本书能提供给你一些解决方案。
大部分的读者应该在通过其他渠道学过、用过 C++ 之后再来阅读本书;而如果你有扎实的 C 编程基础,但从来没用过 C++,也可以尝试一下直接上手本书。在第 1 章,我描述了阅读本书需要的基础知识,也可以作为一个快速的知识复习吧。
本书内容按循序渐进、由浅入深的方式组织,因此推荐的阅读方式是从头到尾、按顺序阅读。在初次阅读时,你可以考虑跳过所有的脚注、插文、交叉引用,以及节标题尾部带上标星号(*)表示难度超出本章其他部分的内容。对于 C++ 老手,也许你会觉得需要跳过一些已经了解的章节,但此时你也有可能会漏掉一些有用的说明信息。因此,我建议对已经了解的内容也快速浏览一下。需要快速查找信息时,本书尾部的索引应该可以给你帮助。
本书编辑老师将这本书的特色总结为如下几条,供你参考:
不止于这本书
本书是我计划写作的 C++ 系列图书的第一本。这本书是关于“使用 C++”的,是基础,适合任何使用 C++ 进行开发的程序员。这本书的目的是告诉读者使用现代 C++ 的“正确”方式——换句话说,如何用好标准 C++ 提供的“制式武器”,高效地进行开发并避免一些常见的陷阱。
3. 关于我
提供一个比较官方的介绍吧。
吴咏炜
国内知名 C++ 专家、Boolan 首席技术咨询师,曾任英特尔亚太研发中心资深系统架构师,毕业于复旦大学物理系,拥有 30 年 C/C++ 系统级软件开发和架构经验。目前从事 C++ 相关的技术咨询和培训工作,为华为、大疆等多家公司提供过服务。工作涉及 C/C++ 语言、软件架构、安全软件开发、性能优化、代码重用、开源软件等多方面。
开源软件作品包括:mozi、nvwa、libunibreak 等。
专栏或者翻译作品包括:极客时间专栏《现代 C++ 编程实战》(累计学习人数超过 3.5 万人),图书翻译作品《编程大师访谈录》《C++ Core Guidelines 解析》,论文翻译作品《在纷繁多变的世界里茁壮成长:C++ 2006—2020》,等等。
4. 致谢
本书的初稿经过了一些朋友和 C++ 爱好者的审读,他们是:倪文卿(IceBear)、罗能(netcan)、冯畅、何荣华、李冠锋、琳哒 6、张德龙、杨凡、吴长盛、杨文波和杨红尘。我收到了各位宝贵的反馈意见,并修正了书中很多技术和文字问题。在此,谨向各位表示深深的谢意。特别鸣谢倪文卿,他给出了最详尽的反馈意见,还花了不少时间跟我讨论。
同时,感谢以下朋友给出的关于本书的专家书评。
这本书并没有长篇大论地罗列所有语言特性,而是在有限的篇幅里简明扼要地抓住现代C++ 的“主线”,选择那些“重要又常用”的语言特性,深入这些特性的“来龙去脉”,确保“好钢用在刀刃上”。我向每一位渴望掌握现代 C++ 的读者推荐本书。
——李建忠,C++ 及系统软件技术大会主席
ISO 国际 C++ 标准委员会委员
作为一名日常工作使用 C++ 近六年的开发者,书中介绍的许多方法让我深有共鸣。本书的知识点兼具广度和深度,作者从实际应用场景出发,提供了众多最佳实践。它非常适合刚入门 C++ 以及希望进一步提升 C++ 技能的开发者。
——罗能,华为高级工程师,《C++20 高级编程》作者
我就是通过学习吴老师的《现代C++ 编程实战》专栏成长的——现在这本新书简直就是个“大礼包”——内容多到爆炸,比专栏还要精彩。书中对知识点的讲解都是干货,相信每位读者都能从中学到很多,收获满满。
——程序喵大人,资深 C++ 开发工程师
《C++20 高级编程(第 5 版)》译者
我把这本新书推荐给仍在使用传统 C++ 的同行。作者以严谨而亲切的语言,在克制的篇幅里涵盖了实战现代 C++ 的核心要点。阅读中我多次感叹:“哦,现在可以这样了!”
——杨文波,资深嵌入式 C++ 程序员
《C++ Templates(第 2 版)中文版》《C++ Core Guidelines 解析》译者
这是一本扎根实战的技术书,更是一本充满洞见的实用工具书,体现了吴老师对 C++ 语言的深刻理解与技术追求。希望本书能够帮助开发者在现代 C++ 复杂的技术生态中游刃有余,实现高效而优雅的编程。
——何荣华(墨梵),宝马自动驾驶软件专家
《C++ Templates(第 2 版)中文版》《C++ Core Guidelines 解析》
《C++20 高级编程(第 5 版)》译者
本书作者以其数十年的开发经验和深厚的理论功底,深入探讨了现代 C++ 的核心特性,同时,针对开发过程中常见的问题提供了切实可行的解决方案和最佳实践。本书实乃学习和进阶现代 C++ 的良师益友。
——雨乐,广告引擎高级技术专家
现代 C++ 语言历经多次修订,增添了不少新功能。刚接触的开发者往往感叹其卷帙浩繁,一时不知从何抓起。很高兴能看到此书问世,带领大家从实战出发,探寻相关概念要解决的问题及其背后的思想,从而更好地掌握 C++。
——倪文卿(IceBear),知乎 C++ 答主
5. 关于图书的更多信息
你可能想了解一下关于图书的更多信息,比如目录、部分试读,等等,在此,展示一张目录图,方便大家查看:
(放大可查看大图)
你也可以前往图灵社区下载试读 PDF,PDF 中提供了完整的目录、章节试读(关于第 7 章“标准容器”的部分内容)
网址如下:https://www.ituring.com.cn/book/3410
6.购买
点击这个链接,获得限时福利价格: