《C++编程规范》笔记(组织和策略)
来源:互联网 发布:tomcat linux内核优化 编辑:程序博客网 时间:2024/06/05 16:24
这是C++信徒的摩西十戒,值得将其铭刻在显示器的边缘,供C++程序员们每日膜拜。我要将其铭刻在我的blog里,铭刻在我的记忆里,直到它们成为我思维的一部分。
第0条:不要拘泥于细节(了解哪些东西不应该标准化)
第1条:在高警告级别干净利落地编译
把编译器的警告级别开到最大,并且能够悄无声息地生成结果。对于那种视警告如无物的人,关门!放狗!也不要轻易的在源代码中关闭编译器警告。
这个就是DailyBuild嘛!对一个团队项目而言,DailyBuild就是心跳,它应该可以通过一个按钮或是一条命令就能构建出整个系统。您的心跳正常吗?这里的关键是:只要一个操作就能完成所有工作。
第3条:使用版本控制系统
还有那个团队没有使用vcs?如果没有,“盲人骑瞎马,夜半临深池”,真是极好的写照。
第4条:在代码审查上投入
很多团队其实是没有有效的代码审查的。亮出自己的代码,阅读别人的代码,这也是熟悉整个项目的好方法。把代码投影在墙上,几个人坐下来一起评论也是有效的方法。
第0条:不要拘泥于细节(了解哪些东西不应该标准化)
- 缩进:不必规定如何缩进,每个人遵从一个自己喜欢的规则即可。
- 行长:今天已经没有太大的必要限制80个字符了,当然,越有利于阅读越好。
- 命名:不要太严苛,除了宏应该全部大写外,别的只要遵从某种大家接受的风格即可。常见的风格有2种,一种是连字符连接全部小写的单词,另一种是单词首字母大写。如果需要使用各种第三方库,基本上很难保持一种风格。在一定的范围内保持一致,目标是使得阅读更容易即可。
- 注释:不要规定注释的格式。不过,使用doxygen语法的注释是个好主意,我一直用doxygen产生文档。
- 匈牙利记法:很高兴,我为自己厌恶的东西找到了支持我的同盟军。在C++语言中借助一点小伎俩来表达类型是无益的,C++压根就不需要这些,它只会带来混乱。
- 单入口单出口:在支持异常和确定性析构的C++世界,这是多余的。
第1条:在高警告级别干净利落地编译
把编译器的警告级别开到最大,并且能够悄无声息地生成结果。对于那种视警告如无物的人,关门!放狗!也不要轻易的在源代码中关闭编译器警告。
- 对于第三方库,在包含文件周围加以屏蔽即可
- 未使用参数:不提供该参数名称即可
- 未使用的变量:插入一个该变量的表达式即可。这算是一个惯用法了,会比较多的用到。
- 变量未初始化:初始化。需要通过一个过程来初始化的例外,即形如:obj; init_obj(obj);
- 某些分支没有return返回值。在这些分支上加入断言:assert(false);再接一个return返回值。
- 有、无符号不匹配。如果无法避免,预先写好强制转换。个人认为,尽量避免无符号数,即使是处理理论上就没有符号的数据,有符号数适应性更好。几乎没有必要使用无符号数---除了某些位操作。
这个就是DailyBuild嘛!对一个团队项目而言,DailyBuild就是心跳,它应该可以通过一个按钮或是一条命令就能构建出整个系统。您的心跳正常吗?这里的关键是:只要一个操作就能完成所有工作。
第3条:使用版本控制系统
还有那个团队没有使用vcs?如果没有,“盲人骑瞎马,夜半临深池”,真是极好的写照。
第4条:在代码审查上投入
很多团队其实是没有有效的代码审查的。亮出自己的代码,阅读别人的代码,这也是熟悉整个项目的好方法。把代码投影在墙上,几个人坐下来一起评论也是有效的方法。
- 《C++编程规范》笔记(组织和策略)
- 《C++编程规范》笔记(组织和策略)
- 《C++编程规范》笔记(组织和策略)
- 《C++编程规范》笔记(组织和策略)
- C++编程规范之组织和策略问题(读书笔记)
- C++编程规范 组织和策略问题
- C++编程规范之组织和策略问题
- C++编程规范(一)组织和策略上的问题
- C++ 编程规范101读书笔记(1)组织和策略问题
- C++编程规范 组织和策略问题 学习 (1) --不要拘泥小节
- C++编程规范 组织和策略问题 学习 (2) --做代码审查
- Object-c基础编程学习笔记-源文件组织,XCODE新功能
- 高质量C++/C 编程指南 阅读笔记(一)编程规范
- java学习笔记(一)--编程规范和技巧总结
- linux 下 C 编程和make的方法 (三、工程文档的组织)
- linux 下 C 编程和make的方法 (三、工程文档的组织)
- c语言编程规范和范例
- c语言编程规范和范例
- 关于软件项目估算、度量的一些想法
- type解析
- JDK1.5.0+Eclipse3.1+MyEclipse4.1+Tomcat5.0.28 JSP开发环境配置笔记
- 简单的table列头排序
- 爱上博客
- 《C++编程规范》笔记(组织和策略)
- 看到别人都有了博客,心里痒痒。
- 小小麻雀
- 碰到数据类型问题及解答
- 精通数据库系列之入门-基础篇(2)
- 乱弹
- LONG类型和VARCHAR2类型的差别
- 诺亚方舟论坛的漫长开发历程(一)
- Windows编程参考--消息