fbpx

[email protected]

购物车

 查看订单

  • 我的帐户
东东购 | EasternEast
  • 中文书店
    • 畅销排行榜
      • 小说 畅销榜
      • 童书 畅销榜
      • 外语畅销榜
      • 管理畅销榜
      • 法律畅销榜
      • 青春文学畅销榜
    • 热门分类
      • 社会小说
      • 成功/励志 畅销榜
      • 人物传记
      • 大陆原创
      • 绘本童书
      • 影视小说
    • 文学推荐
      • 文集
      • 戏剧
      • 纪实文学
      • 名家作品
      • 民间文学
      • 中国现当代随笔
    • 新书热卖榜
      • 小说 新书热卖榜
      • 青春文学 新书热卖榜
      • 童书 新书热卖榜
      • 管理 新书热卖榜
      • 成功/励志 新书热卖榜
      • 艺术 新书热卖榜
  • 精选分类
    • 小说
    • 保健养生
    • 烹饪/美食
    • 风水/占卜
    • 青春文学
    • 童书
    • 管理
    • 成功/励志
    • 文学
    • 哲学/宗教
    • 传记
    • 投资理财
    • 亲子家教
    • 动漫/幽默
    • 法律 Legal
    • 经济 Economics
    • 所有分类
  • 关于东东
  • 帮我找书
搜索
首页畅销榜计算机/网络 畅销榜C++ Core Guidelines解析

C++ Core Guidelines解析

现代C++编程Best Practices的共识,C++ Core Guidelines的中文精准导读。C++创始人Bjarne Stroustrup、C++标准委员会主席Herb Sutter倾力推

作者:[德]赖纳·格林(Rainer Grimm)著 吴咏炜、何荣华、张云潮、杨文波 译 出版社:清华大学出版社 出版时间:2023年07月 

ISBN: 9787302635772
年中特卖用“SALE15”折扣卷全场书籍85折!可与三本88折,六本78折的优惠叠加计算!全球包邮!
trust badge

EUR €73.99

类别: 程序设计, 计算机/网络 畅销榜 SKU:6589e018f0f2240d2c5bb692 库存: 有现货
  • 描述
  • 评论( 0 )

描述

开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302635772

产品特色

编辑推荐

由资深技术专家Rainer Grimm撰著的《C Core Guidelines解析》,从内容上说,选取了现代C 语言最核心的相关规则;从篇幅上说,对软件工程师非常友好。以“八二原则”看,这个精编解析版是一-个非常聪明的选择。同时,Rainer Grimm并没有简单照搬开源文档中的规则,而是结合自己丰富的咨询和培训经验,给出了非常翔实的解析,这自然为本书增色不少。最后,此书中文译本的质量让我非常放心。翻译团队
非常强大,领衔的吴咏炜在C 领域的功力自不必说,而且他在技术文本上字斟句酌的认真劲可是出了名的,杨文波、张云潮和何荣华在C 领域也都非常资深。非常开心C 中文社区的好书越来越多,我相信《(C Core Guidelines解析》会给各位C 工程师以及企业C 研发团队带来长久的价值。

 

内容简介

在《C Core Guidelines 解析》中,C 专家讲师 Rainer Grimm提炼出了Core Guidelines中的精髓,去除了晦涩难懂的内容,分享了新的见解和背景,并提供了自己培训课程中经过充分测试的示例。
对于使用 C 11 及后续版本 C 的有经验程序员,Grimm 能为他们提供帮助,使其用好Core Guidelines。他的大部分代码示例是为 C 17 编写的,在合适的地方涵盖了更新版本和 C 20,并提供了对官方 C Core Guidelines在线版本的引用。
无论你是创建新软件还是改进旧代码,Grimm 都将帮助你从Core Guidelines里最有用的规则中获取更多价值,使你编写的代码更安全、更清晰、更高效,以及更易于维护。
* 应用Core Guidelines和其中的编程哲学
* 正确使用接口、函数、类、枚举、资源、表达式和语句
* 优化性能,实现并发和并行,处理错误
* 有效地使用常量、不可变性、模板、泛型和元编程
* 改进C 代码风格,管理源文件,使用标准库

作者简介

Rainer Grimm 自 1999 年以来担任了软件架构师、团队主管和教练,并从 2002 年开始举办 C 、Python 和专有软件的培训班。作为独立培训讲师,他在编程会议上演讲,每周用英语和德语写博客,并撰写了数本关于现代 C 和并发的书籍。

目  录

目 录
第1 章 简介     1
1.1 目标读者群      1
1.2 目的      1
1.3 非目的     2
1.4 施行      2
1.5 结构      2
1.6 主要部分    2
第2 章 理念     5
第3 章 接口    11
3.1 非 const 全局变量的弊端     12
3.2 运用依赖注入化解     13
3.3 构建良好的接口    15
3.4 相关规则    19
第4 章 函数    21
4.1 函数定义    21
4.2 参数传递:入与出     25
4.3 参数传递:所有权语义   30
4.4 值返回语义      33
4.5 其他函数    36
4.6 相关规则    41
第5 章 类和类层次结构      43
5.1 概要规则    44
5.2 具体类型    47
5.3 构造函数、赋值运算符和析构函数    48
5.4 类层次结构      81
5.5 重载和运算符重载     97
5.6 联合体    104
5.7 相关规则      107
第6 章 枚举    109
6.1 通用规则      109
6.2 相关规则      114
第7 章 资源管理      115
7.1 通用规则      116
7.2 内存分配和释放   120
7.3 智能指针      124
7.4 相关规则      135
第8 章 表达式和语句       137
8.1 通用规则      138
8.2 声明     139
8.3 表达式    155
8.4 语句     166
8.5 算术     171
8.6 相关规则      176
第9 章 性能    177
9.1 错误的优化     177
9.2 错误的假设     178
9.3 启用优化      181
9.4 相关规则      190
第10 章 并发        191
10.1 通用规则     191
10.2 关于并发     202
10.3 关于并行     220
10.4 消息传递     223
10.5 无锁编程     227
10.6 相关规则     229
第11 章 错误处理      231
11.1 设计    232
11.2 实现    233
11.3 如果不能抛出异常   238
11.4 相关规则     241
第12 章 常量和不可变性     243
12.1 使用 const     243
12.2 使用 constexpr    247
第13 章 模板和泛型编程     249
13.1 关于使用     250
13.2 关于接口     252
13.3 关于定义     265
13.4 层次结构     276
13.5 变参模板     277
13.6 元编程      281
13.7 其他规则     302
13.8 相关规则     311
第14 章 C 风格编程       313
14.1 完整的源代码可用   314
14.2 没有完整的源代码   315
第15 章 源文件       319
15.1 接口和实现文件    319
15.2 命名空间     325
第16 章 标准库       331
16.1 容器    331
16.2 文本    337
16.3 输入和输出    343
16.4 相关规则     349
第17 章 架构观念      351
第18 章 伪规则和误解      355
第19 章 规格配置      363
19.1 Pro.type 类型安全    363
19.2 Pro.bounds 边界安全  364
19.3 Pro.lifetime 生存期安全     364
第20 章 Guidelines 支持库    365
20.1 视图    365
20.2 所有权指针    366
20.3 断言    366
20.4 实用工具     367
附录A 施行 C Core Guidelines    369
附录B 概念     375
附录C 契约    379

前  言

前 言
本前言只有一个目的:给你——亲爱的读者,提供必要的背景,以便你从本书中获得最大的收获。这包括我的技术细节、写作风格、写这本书的动机以及写这样一本书的挑战。
惯例
我保证,只有几个惯例。
规则还是指导原则
C Core Guidelines 的作者经常把这些指导原则称为规则。我也一样。在本书中,我使用的这两个术语可以互换。
特殊字体
粗体 有时我用粗体字强调重要的术语。
Monospace 代码、指令、关键词、类型、变量、函数和类的名称都用等宽字体显示。
方框
每一章的结尾处基本都有方框,里面用点列表进行总结。
相关规则
一个规则常常会与其他规则相关。如果有必要,我会在一章的末尾提供这些有价值的信息。
本章精华
重要
在每一章的结尾处获得基本信息。
源代码
我不喜欢 using 指令和声明,因为它们隐藏了库函数的来源。但由于页面的空间有限,有时我还得用一下它们。我使用它们时,总是可以从 using 指令(using namespace std;)或 using 声明(using std::cout;)中推断出来源。并非所有头文件都会在代码片段中标出来。布尔值会显示为 true 或 false,产生此输出所必需的输入/输出操作符 std::boolalpha 大多不放在代码片段中。
代码片段中的3 个点(…)代表没写出的代码。
当我把完整的程序作为代码实例介绍时,你会在代码的第一行找到源文件的名称。
假设你使用的是 C 14 编译器。如果这个例子需要 C 17 或 C 20 的支持,我会在文件名后面提到所需的 C 标准。
我经常在源文件中使用“// (1)”之类的标记,以便后续解释。如果可能的话,我把标记写在引用的那一行;如果不行,就写在前面一行。这些标记不是本书中一百多个源文件的一部分(源文件可通过扫描本书封底二维码获取)。由于排版上的原因,我经常会对本书中的源代码进行调整。
当我使用 C Core Guidelines 中的例子时,经常为了提高可读性而进行重写:如果缺少 namespace std,我会加上;我也会统一格式。
为什么需要指导原则
下面是些主观的结论,主要基于我超过 15 年的 C 、Python 和一般软件开发的培训师经验。在过去几年里,我负责有关除颤器的软件研发以及团队管理。我的职责包括我们设备的合规事务。为除颤器编写软件的任务极具挑战性,因为它们可能给病人和操作者带来死亡或严重伤害。
我心中有一个问题,它也是我们C 社区需要回答的问题:为什么我们需要现代C 的指导原则?下面是我的想法。为了简单起见,我的想法包括三个方面。
对新手来说很复杂尤其对于初学者来说,C 是一种天然复杂的语言。这主要是因为我们要解决的问题本来就很棘手,而且往往很复杂。当你讲授 C 时,你应该提供一套规则,它们在至
少 95% 的用例中对你的学员有效。我想到的规则包括:
● 让编译器推断你的类型。
● 用花括号初始化。
● 优先选择任务而不是线程。
● 使用智能指针而不是原始指针。
我在培训班上讲授诸如上面的规则。我们需要一个关于 C 的上佳实践或规则的全集。这些规则应该是正面表述的,而不是否定式的。它们得声明你应该如何写代码,而C Core Guidelines 解析不是应该避免什么问题。
对专业人士来说很困难我并不担心每三年一次的新 C 标准所带来的大量新功能。我担心的是现代 C 支持的新思想。想想使用协程的事件驱动编程、惰性求值、无限数据流或用范围库进行函数组合。想想概念,它为模板参数引入了语义类别。向 C 程序员传授面向对象的思想的过程可能会充满挑战。因此,当你转向这些新的范式时,必须重新思考,你解决编程难题的方式也多半会改变。我想,过多的新思想尤其会让专业的程序员感到不知所措,他们习惯于用传统技术解决问题。他们很可能会落入“手里拿着锤子,所有问题都是钉子”这样的陷阱。
用在安全关键型软件中最后,我有个强烈的担忧。在安全关键型软件的开发中,你经常必须遵守一些规则。
最突出的是 MISRA C 。目前的 MISRA C : 2008 指导原则是由汽车工业软件可靠性协会(MISRA)发布的。它们基于 1998 年的 MISRA C 指导原则,最初为汽车行业而设计,后来在航空、军事和医疗领域成为实施安全关键软件的事实标准。与 MISRA C 一样,MISRA C 描述了 C 的一个安全子集的指导原则。但是这里有个概念问题。
MISRA C 并不是现代 C 软件开发的最先进技术,它落后了4 个标准!举个例子:MISRA C 不允许运算符重载。我在培训班上讲,你应该使用用户定义字面量来实现类型安全的算术:auto constexpr dist = 4 * 5_m 10_cm – 3_dm。为了实现这种类型安全的算术,你必须对算术运算符和后缀字面量运算符进行重载。说实话,我不相信 MISRA C 会与当前的 C 标准同步发展。只有社区驱动的指导原则,如 C Core Guidelines,才能面对这一挑战。
MISRA C 集成了AUTOSAR C 14 不过,仍有希望。MISRA C 集成了 AUTOSAR C 14。AUTOSAR C 14 基于C 14,应该会成为 MISRA C 标准的扩展。我非常怀疑由组织驱动的规则是否能够与现代 C 的动态发展保持同步。
我的挑战
回顾一下我在 2019 年 5 月与 Bjarne Stroustrup 和 Herb Sutter 讨论的电子邮件的基本内容,邮件里我告诉他们,我想写一本关于 C Core Guidelines 的书:“我是 C Core Guidelines 的绝对支持者,因为我坚信我们需要现代 C 的正确/安全的使用规则。
我经常在我的C 课程中使用C Core Guidelines 中的例子或想法。Guidelines 的格式让我想起了 MISRA C 或 AUTOSAR C 14 的规则。这可能是有意为之,但对于广大受众来说,它并不是理想的格式。我认为,如果我们用第二份文件描述Guidelines 的总体思路,将会有更多的人阅读和讨论Guidelines。”
我想对之前的这些对话补充一些说明。在过去的几年里,我在我的德语和英语博客上写了一百多篇关于 C Core Guidelines 的文章。此外,我还为德国的Linux-Magazin杂志写了一系列关于 C Core Guidelines 的文章。我这样做的原因有两个:首先,C Core Guidelines 应该被更多人所熟知;其次,我想以一种可读的形式介绍它们,如果有必要的话,提供更多的背景信息。
这是我的挑战:C Core Guidelines 由五百多条指导原则组成,很多时候直接称为规则。这些规则是在考虑静态分析的情况下设计的。许多规则对于专业的 C 软件开发者来说可以救命,但也有许多相当特殊的规则,往往不完整或多余,有时规则之间甚至相互矛盾。我的挑战是将这些有价值的规则编成可读的、可供消遣的故事,去除其中佶屈聱牙之处,必要时填补缺失的内容。说到底,这本书应该包含专业的 C 软件开发者必须遵守的规则。
万物流动,无物永驻
古希腊哲学家赫拉克利特有言:“万物流动,无物永驻。”这也代表了我在写这本书时面临的挑战。C Core Guidelines 是一个由 GitHub 托管的项目,有超过 200 个贡献者1。在我写这本书的时候,我所依据的原始条款可能已经发生改变了(见图a)。
图a C 各版本新特性
Guidelines 已经包含了 C 的特性,这些特性可能会成为即将到来的标准的一部分,例如 C 23 中的契约2。为了反映这一挑战,我做了几个决定:
● 我将重点放在 C 17 标准上。在合适的场合,我会描述针对 C 20 标准的规则,如概念。
1 译者注:到2022 年年底,贡献者已经超过了300 人。
2 译者注:遗憾的是,契约这一特性没能进入 C 23。
C Core Guidelines 解析
● C Core Guidelines 在不断演进,特别是随着新C 标准的发布而演进。本书也将如此。我计划对这本书进行相应的更新。
如何阅读本书
本书的结构代表了 C Core Guidelines 的结构。它有相应的主要章节和部分辅助章节。除了 C Core Guidelines 外,我还添加了附录,这些附录对缺失的主题进行了简明扼要的概述,包括 C 20 乃至 C 23 的特性。
至此,我仍然没有回答如何阅读本书的问题。当然,你应该从主要章节开始,最好从头到尾阅读。辅助章节提供了额外的信息,并特别介绍了Guidelines 支持库。可将附录当作参考来获得所需的背景信息,以便理解主要章节。没有这些额外的信息,本书就不完整。

 

抢先评论了 “C++ Core Guidelines解析” 取消回复

评论

还没有评论。

相关产品

阅读更多
缺货

深度学习入门 基于Python的理论与实现

EUR €35.99
评分 5.00 / 5
加入购物车

Unity 3D脚本编程——使用C#语言开发跨平台游戏

EUR €48.99
加入购物车

Python编程(第四版)

EUR €105.99
评分 5.00 / 5
加入购物车

Java从入门到精通(第4版)(附光盘)

EUR €43.99
评分 5.00 / 5

东东购的宗旨是服务喜爱阅读中文书籍的海外人民,提供一个完善的购书平台,让国人不论何时何地都能沉浸在书香之中,读着熟悉的中文字,回忆着家乡的味道。


安全加密结账 安心网络购物 支持Paypal付款

常见问题

  • 货物配送
  • 退换货政策
  • 隐私政策
  • 联盟营销

客户服务

  • 联系东东
  • 关于东东
  • 帮我找书
  • 货物追踪
  • 会员登入

订阅最新的优惠讯息和书籍资讯

选择币别

EUR
USD
CAD
AUD
NZD
NOK
GBP
CHF
SEK
CNY
UAH
ILS
SAR
MXN
KRW
MYR
SGD
HUF
TRY
JPY
HKD
TWD
facebookinstagram
©2020 东东购 EasternEast.com

限时特卖:用“SALE15”优惠券全场书籍85折!可与三本88折,六本78折的优惠叠加计算。 忽略