C++编程规范

[加] Herb Sutter

出版时间

2010-12-01

ISBN

9787115239402

评分

★★★★★

标签

计算机

书籍介绍

良好的编程规范可以改善软件质量,缩短上市时间,提升团队效率,简化维护工作。在本书中,两位全世界最受尊敬的C++专家将全球C++社区的集体智慧和经验凝结成一整套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位C++程序员应该遵循的行事准则。

本书涵盖了C++程序设计的每一个方面,包括设计和编码风格、函数、操作符、类的设计、继承、构造与析构、赋值、名字空间、模块、模板、泛型、异常、STL容器和算法等。书中对每一条规范都给出了言简意赅的叙述,并辅以实例说明;另外还给出了从类型定义到错误处理等方面的大量C++ 最佳实践,包括许多最新总结和标准化的技术,即使使用C++多年的程序员也会从中受益匪浅。

通过阅读本书,可以找到以下问题的答案。

 哪些东西值得标准化?哪些东西不值得标准化?

 使代码可扩展的最佳方法是什么?

 合理的错误处理策略有哪些要素?

 如何(和为什么要)避免不必要的初始化、循环依赖和定义依赖?

 何时应该(以及如何)同时使用静态和动态的多态性?

 如何实践“安全的”改写?

 何时该提供不会失败的交换?

 为什么要阻止异常跨越模块边界传播?如何阻止?

 为什么不应该在头文件中写名字空间声明或指令?

 为什么应该使用STL vector和string代替数组?

 如何选择正确的STL搜索算法?

 为了保证代码的类型安全,应该遵从哪些规则?

AI导读
核心看点
  • 汇集全球C++专家智慧,提炼101条核心编程规范。
  • 涵盖设计、编码、异常处理等全方位最佳实践。
  • 强调简单、清晰、安全,提升代码质量与维护性。
适合谁读
  • 具备一定C++基础,希望规范编码习惯的开发者。
  • 需要制定团队开发标准的中高级C++程序员。
  • 追求代码质量,希望减少运行时错误的工程师。
读前提醒
  • 内容高度凝练,建议结合《Effective C++》对照阅读。
  • 翻译略显晦涩,需结合实例理解,勿死记硬背。
  • 适合随经验积累反复品读,非零基础入门教材。
读者共识
  • C++编程经验集大成者,是制定团队规范的基础。
  • 比Effective系列更精简,覆盖面广但阅读有门槛。
  • 需大量实践支撑,否则难以深刻理解规范背后的深意。

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "无法修改的库头文件可能包含引起警告(可能是良性的)的构造。如果这样,可以用自己的包含原头文件的版本将此文件包装起来,并有选择地为该作用域关闭烦人的警告,然后在整个项目的其他地方包含此包装文件。"
  • "软件简单为美:质量优于速度,简单优于复杂,清晰优于机巧,安全优于不安全。"
  • "如果能够证明优化必要而且非常重要,尤其在数据量逐渐增长的情况下,那么应该集中精力改善算法的O(N)复杂性,而不是进行小型的优化,比如节省一个多余的加法运算。"
  • "让一个正确的程序更快速,比让一个快速的程序正确,要容易得太多,太多。"
  • "许多类型要求对这种共享对象进行串行访问,但是有些类型却不要求这样。后者通常要么从设计中去掉加锁需求,要么自己进行内部加锁,无论哪种情况,仍然需要留意内部加锁粒度的局限。"
  • "在函数声明中,要避免将通过值传递的函数参数声明为const。"
  • "不要编写依赖于函数参数求值顺序的代码"
  • "将私有部分隐藏在一个不透明的指针(即指向已经声明但是尚未定义的类的指针,最好是选择合适的智能指针)"
作者简介
Herb Sutter 曾任ISO C++标准委员会主席,是C++ Users Journal杂志特邀编辑和专栏作家。他目前在微软公司领导.NET环境下C++语言扩展的设计工作。除本书外,他还撰写了三本广受赞誉的图书:Exceptional C++ Style、Exceptional C++和More Exceptional C++。 Andrei Alexandrescu 世界顶尖的C++专家,C++ Users Journal杂志的专栏作家,他的Modern C++ Design一书曾荣获2001年最佳C++图书称号,书中所开发的Loki已经成为最负盛名的C++程序库之一。
目录
组织和策略问题 1
第0条 不要拘泥于小节(又名:了解哪些东西不应该标准化) 2
第1条 在高警告级别干净利落地进行编译 4
第2条 使用自动构建系统 7
第3条 使用版本控制系统 8

显示全部
用户评论
C++标准化后编程经验类集大成,不知C++11出来后价值几何?
原来是从第0条开始,难怪有101条.
适合随着经验的积累反复品读的书
不知道是翻译的原因,还是什么;读起来很不顺畅...而且例子也很少...不适合初学者...
很好地总结,利用上班时间读完了。哈哈
很多条目与 effective c++, more effective c++ 相同,只是解释的更为简单。老毛病就是中文翻译实在......
初学者应该尽快按照规范模仿编程。
这本书是对工程经验的高度概括,没有大量的实践会很快忘记
经典 比effective c++讲得短小 所以读起来比较吃力 但是覆盖面会更多些
收藏