Programming Attention Points

来源:互联网 发布:华为手机克隆软件 编辑:程序博客网 时间:2024/06/08 16:37

不要在注释中重复代码的语义,应编写解释方法和原理的说明性注释。

禁用匈牙利命名法,在面向对象语言中类型信息不应体现在变量名中。

重视代码审查。

优先使用线形算法,尽可能避免使用差的多的多项式算法。

切忌盲目优化,优化前先做需求分析,优化首先考虑算法上的改进。

分清避免不必要的优化和避免不必要的劣化的区别。

处理需要配对的获取/释放函数调用的资源时,应该将资源封装在一个对象中,让对象为我们强制配对,并在析构函数中执行资源释放。

确保所有资源都为对象所有,最好使用智能指针而不是原始指针保存动态分配的资源。

应该在自己的语句中执行显式的资源分配(new)。而且每次都应该马上将分配的资源赋予管理对象。

积极的使用const。

宏不应放于头文件中。

宏不认尖括号(<),故而注意MACRO(foo<int, double>)会被认为是2个以逗号分隔的参数。

在条件编译(系统相关部分)中,要避免在代码中到处杂乱的插入#ifdef,应对代码进行组织,利用宏来驱动一个公共接口的多个实现,然后始终使用该接口。

在能够合理的初始化一个变量之前,绝不要声明它。谁都没有规定过代码一定要在开头声明所用到的变量。

构造函数都加上explicit关键字。

不要过分依赖,如果用向前说明(forward declaration)能够实现,那么就不要包函(#include)定义。

为了打破循环依赖,使用依赖倒置原理(DIP),不让高层模块依赖于低层模块,让两者都依赖于抽象。

头文件应自己自足,每个头文件都应该能够独立进行编译。为此需要包含其内容所依赖的所有头文件。即避免一个文件包含某个头文件时,应该还要包含另一个头文件才能工作。不过,切记不要包含并不需要的头文件。

总是编写内部#include保护符,绝不要编写外部#include保护符。

使用继承是要考虑清楚,避免从并非要设计成基类的类中继承。

需要保证正确的最重要的东西是接口,其他所有的东西都可以修改。如果接口弄错了,可能再也不允许修改了。

 

原创粉丝点击