运用现代设计模式构建健壮的C++应用
- 作者:Fedor G. Pikus
- 译者:陈晓伟
- 出版于: 2023年7月
Important
翻译是译者用自己的思想,换一种语言,对原作者想法的重新阐释。鉴于我的学识所限,误解和错译在所难免。如果你能买到本书的原版,且有能力阅读英文,请直接去读原文。因为与之相较,我的译文可能根本不值得一读。
— 云风,程序员修炼之道第2版译者
C++ 多范式编程指南:涵盖面向对象、函数式、泛型与并发编程及STL,以及详解最新特性。
关于本书
C++ 是一门通用编程语言,专为高效性、高性能和灵活性而设计。设计模式是针对常见设计问题的通用解决方案,本质上是一套可复用的架构组件库,这些组件针对软件架构。
本书将聚焦两种关键模式:能自然适配需求的设计模式,以及受益于 C++ 特性的专属模式。掌握这些模式后,将大幅减少解决常见问题的时间,直接运用经过实践检验的成熟方案。并且,设计模式是一种高效的沟通方式 —— 模式作为广为人知的标准化解决方案,仅一行代码就能传递丰富的设计意图。
通过本书,将掌握如何运用设计模式编写可维护、健壮且可复用的软件系统。
主要特点
- 深入探索C++核心模式与组件,精通应用程序设计之道
- 掌握解决常见设计与架构难题的技巧、方法和最佳实践
- 理解C++的固有局限,使用设计模式突破限制
内容包括
- 掌握C++中最常用的设计模式
- 运用C++泛型编程解决常见设计问题
- 探索最强大的C++惯用法
- 将经典C++惯用法与泛型编程结合使用
- 了解C++ 17和C++ 20新特性带来的创新模式与惯用法
- 理解设计模式对程序性能的影响
适读人群
本书适合希望学习软件设计模式与原则,并将其应用于构建健壮、可复用且易于维护的C++程序与软件系统的资深开发者。
Fedor G. Pikus现任西门子数字化工业软件集团技术院士及先进项目团队负责人,主导Calibre产品的长期技术规划、工程师培训、软件设计与架构研究等工作。历任:Mentor Graphics(被西门子收购)首席科学家、谷歌高级软件工程师、Mentor Graphics Calibre设计解决方案首席架构师。他于1998年从计算物理学学术研究转向工业界,加入Mentor Graphics。作为高性能计算与 C++ 领域的权威专家,Fedor著有2部 C++ 与软件设计专著,在CPPNow、CPPCon等顶级技术会议发表演讲,并是O'Reilly技术作家。拥有30余项专利及100余篇物理学、EDA、软件设计与 C++ 领域的学术论文与会议报告。
- Github翻译地址:https://github.com/xiaoweiChen/Hands-On-Design-Patterns-with-Cpp
- 在线阅读:https://xiaoweichen.github.io/Hands-On-Design-Patterns-with-Cpp/
Note
译版在Release中提供生成好的PDF文件以供下载,若需要其他格式请自行安装第三方工具(比如:Calibre)进行转换
Tip
译文的LaTeX 环境配置:https://www.cnblogs.com/1625--H/p/11524968.html
-
使用xelatex编译时需要添加
-shell-escape和-8bit选项,例如:xelatex -synctex=1 -interaction=nonstopmode -shell-escape -8bit "book".tex -
为了内容中表格和目录索引能正常生成,至少需要连续编译两次
-
Latex中的中文字体(思源宋体)和英文字体(Hack),需要安装后自行配置。如何配置请参考主book/css.tex顶部关于字体的信息。
vscode中配置LaTeX:https://blog.csdn.net/Ruins_LEE/article/details/123555016
Tip
生成静态网页:
- 先安装Python 3.10+,安装完成后可以用命令行
python --version确定安装是否完成。 - 生成静态Web页面的命令
python ./tools/latex2html/main.py -i . -o ./docs - 进入docs文件夹,在浏览器里载入
index.html即可。
