c++业界编程规范和书籍

0        业界编程规范和书籍

本次编程规范整理的原则是求精不求全,主要针对华为当前编码上的突出问题,所以在全面性上不免有所欠缺。业界一些公司、组织也发布了一些编程规范,对编程语言的缺陷、使用风险都有很好的描述,这里做一些简单的推介,有兴趣的同学可以在平时学习中可以参考,提高自己的编程能力。

0.1         业界编程规范

0.1.1       google C++ code style(google C++编程指南)

google对外公布的一份google内部编写C++的代码规范文档。

Google开发者认为C++是一门包含大量高级特性的巨型语言,某些情况下,他们会限制甚至禁止使用某些特性,使代码简化,避免可能导致的各种问题。

包含的内容:头文件、命名规则、注释、语言特性的使用规则、编码格式,等等。

特点:强调理解基础上的遵循,一个规则通常明确说明其优点、缺点,并举很多例子,让读者在理解的基础上遵循,不像规章制度那样生硬和抽象,实际上读起来更像一个教程。

比如:禁止使用C++异常,花了一页纸的篇幅来解释使用和不使用的优缺点,非常容易理解。

0.1.2       C++编程规范101条规则、准则与最佳实践》

这本编程规范凝聚两位知名的C++专家(萨特,(Herb Sutter) 曾任ISO C++标准委员会主席;亚历山德雷斯库(Andrei Alexandrescu)世界顶尖的C++专家),以及全球C++界20年的集体智慧和经验。

书中对每一条规范都给出了精确的描述,并辅以实例说明;从类型定义到错误处理,涵盖了C++程序设计的每一个方面,都给出了最佳实践。即使使用C++多年的程序员也会从中受益匪浅。

包含内容:包括设计和编码风格、函数、操作符、类的设计、继承、构造与析构、赋值、名字空间、模块、模板、泛型、异常、stl容器和算法等。

0.1.3       Microsoft All-In-One Code Framework《微软一站式示例代码库》

微软一站式示例代码库 (Microsoft All-In-One Code Framework) 由微软社区技术支持团队倾力呈现,根据MSDN论坛、热门社交网络、多个开发者社区收集的开发者最关心和最烦恼的问题,编写相应的代码示例,并以很短的周期发布更新,以方便开发者下载参考。通过这些示例代码,帮助社区开发者提高开发效率,减少代码中可能出现的bug,并增强代码的可维护性。

强调高质量代码示例所具有的特质:1.易懂;2.正确性;3.一致性;4.流行性;5.可靠性;6.安全性。

包含内容:1、通用编程规范– 对代码风格,格式和结构提供了全局通用的指导;2、C++ 编程规范;3.NET 编码规范。

0.2         扩展学习材料

本规范涉及到一系列C++语言特性和技术,需要深入学习相关知识。

推荐学习但不限于以下材料:

0.2.1       C++ primer

作者:C++大师Stanley B. Lippman,C++标准委员会原负责人Josée Lajoie。

业界公认的完整涵盖C++标准的权威著作,对基本编程技术,面向对象编程,标准库和泛型编程都有全面的介绍。强调重要的知识点,提醒常见的错误,推荐优秀的编程实践,给出使用提示,和大量来自实战的示例和习题。

推荐语:初学者的指南,熟练者的参考书。

推荐度:★★★★★

0.2.2       effective C++ / more effective C++

世界顶级C++大师Scott Meyers成名之作《effective C++》(改善程序与设计的55个具体做法)以及续集《more effective C++》(35个改善编程与设计的有效方法)。

被评为影响最深远、最受推崇的书籍之一。读过这本书能够跨越C++重重险阻,迅速提升C++功力,值得反复阅读和体会。

书中每一条准则描述一个编写出更好的 C++ 程序的方法,每一个条款的背后都有具体范例支撑。

内容包括:改变旧有的C习惯;内存管理;构造函数,析构函数和Assignment运算符;类与函数的设计和声明;类与函数实现;继承关系和面向对象设计;模板,等等。

推荐语:有人说C++程序员可以分成两类,读过Effective C++的和没读过的。

推荐度:★★★★★

参考推荐读物:《Exceptional C++》(作者:萨特,也是《C++编程规范101条规则、准则与最佳实践》的作者),可作为进阶读物。

0.2.3       Effective STL

Scott Meyers(Effective C++和More Effective C++的作者)的又一大作,揭示总结了的一些关键规则,包括专家们总是采用的做法以及总是避免的做法。

重点讲述如何使用STL,共有50条指导原则,在讲述每一条指导原则的时候,Scott Meyers都提供了透彻的分析和深刻的实例,所以读者不仅可以学到要做什么,而且还能够知道什么时候该这样做,以及为什么要这样做。

主要包括以下几个方面:1、关于选择容器的建议,涉及到的容器有:标准STL容器(例如vector和list)、非标准的STL容器(例如hash_set和hash_map),以及非STL容器(例如bitset)。2、一些改进效率的技术,如何最大程度地提高STL程序的效率。

推荐语:通过这些规则,程序员可以最大限度地使用 STL。

推荐度:★★★★

参考推荐读物:《C++设计新思维::泛型编程与设计模式之应用》,《泛型编程与STL》,作为进阶读物。

0.2.4       inside the C++ object model

C++大师Stanley B. Lippman著。中文名《深度探索C++对象模型》,候捷译。

该书专注于C++面向对象程序设计的底层机制,包括结构化、临时对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。帮助程序员了解底层实现,深刻理解C++以及编译器背后的处理,迅速提高编程能力,知其所以然。

推荐语:若想成为编程高手,并能指导他人,可将此书作为进阶阅读材料。

推荐度:★★★★

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值