很久没有更新过博客了,其实不管多忙,有时候写写博客未尝不是一种提升。下面是我最近看的一本书的部分内容。
1.不要忽视警告,尽量没有警告。
2.使用自动构建系统
3.使用版本控制系统
4.在代码审查上投入
5.一个实体应该只有一个紧凑的职责
6.正确,简单和清晰的代码。
7.编程中应知道何时和如何考虑可伸缩性
8.不要进行不成熟的优化。
9.不要进行不成熟的劣化。
10.尽量减少全局和共享数据。
11.隐藏信息。
12.懂得何时和如何进行并发性编程。
13.确保资源为对象所拥有,使用显式的RALL和智能指针。
14.宁要编译时和连接时错误,也不要运行错误。
15.积极使用const.
16.避免使用宏。
17.避免使用魔数。
18.尽可能局部地声明变量。
19.总是初始化变量。
20.避免函数过长,避免嵌套过程。
21.避免跨编译单元的初始化依赖。
22.尽量减少定义性依赖,避免循环依赖。
23.头文件应该自给自足。
24.总是编写内部#include保护符,绝不要编写外部#include保护符。
25.正确地选择通过值,指针或者引用传递参数。
26.保持重载操作符的自然语义。
27.优先使用算术操作符和赋值操作符的标准形式。
28.优先使用++和--的标准形式,有限调用前缀形式。
29.考虑重载以避免隐含类型转换。
30.便面重载&&,||或,(逗号)。
31.不要编写依赖于函数参数求值顺序的代码。
32.弄清所要编写的是哪种类。
33.用小类代替巨类。
34.用组合代替继承。
35.避免从并非要设计成基类的类中继承。
36.优先提供抽象接口。
37.公用继承即可替换性。继承,不是为了重用。而是为了被重用。
38.实施安全的改写。
39.考虑将虚拟函数声明为非公用的,将公用函数声明为非虚拟的。
40.要避免提供隐式转换。
41.将数据成员设为私有的,无行为的聚集(C语言形式的struct).
42.不要公开内部数据。
43.明确地使用pimpl。(使私有成员真正不可见)。
44.优先编写非成员非友元函数。
45.总是一起提供NEW和Delete。
46.如果提供类专门的NEW,应该提供所有标准形式(普通,就地和不抛出)。
47.以同样的顺序定义和初始化成员变量。
48.在构造函数中初始化代替赋值。
49.避免在构造函数和析构函数中调用虚拟函数。
50.将基类析构函数设为公用且虚拟的,或者保护且非虚拟的。
c++编程规范101条规则