1. 不要直接写下毫无意义的数字,用#define或者const来代替。
2.类成员函数的命名方式,PME构想。
PME构想是当今最流行的软件工程模型。PME是属性,方法,事件的缩写。也即:property, methord, event.
属性一般情况下表现形态为变量。
方法一般情况下表现形态为函数。
主动事件,一般情况下的表现形态为回呼函数,全部以On为前缀。
被动事件,一般情况下表现形态为虚拟函数,全部以Proc为前缀。
主动事件是指这个对象可能会引起的事件,这些事件一般由开发者指定处理函数。
被动事件是指这个对象可能要处理的事件,这些事件函数就是在对象中已经定义的函数,将有对象的上一级来调用。
例如:
class NPC
{
public:
void (*OnPlayerChat) (CPlayer* player, const std::string& talk);
void (*OnPlayerAttack) (CPlayer* player, Attack* attack);
private:
std::string name_;int hp_;
}
#include 的路径及顺序
使用标准的头文件包含顺序可增强可读性, 避免隐藏依赖: C 库, C++ 库, 其他库的 .h, 本项目内的 .h.
- 项目内头文件应按照项目源代码目录树结构排列, 避免使用 UNIX 特殊的快捷目录 . (当前目录) 或 .. (上级目录). 例如, google-awesome-project/src/base/logging.h 应该按如下方式包含:
-
#include “base/logging.h”
- 又如, dir/foo.cc 的主要作用是实现或测试 dir2/foo2.h 的功能, foo.cc 中包含头文件的次序如下:
-
- dir2/foo2.h (优先位置, 详情如下)
- C 系统文件
- C++ 系统文件
- 其他库的 .h 文件
- 本项目内 .h 文件
这种排序方式可有效减少隐藏依赖.