1
全局变量少用,或者用局部变量,或者放在类中,或函数中。
1)全局变量多了,不知道全局变量的含义,以及不知道有多少地方在使用。
2)数据未知
HANDLE g_Handle1;
HANDLE g_ArrHandle[] = { g_Handle1};
全局变量初始化的时候,g_Handle1,还没有值。
如果只是局部使用,就用局部变量。
3)将局部变量,考虑用全局变量代替,有一个原因可能是担心栈溢出,而导致程序异常,如果是这样的话,用全局变量代替,只是隐藏了问题。
2
类命名要统一
1)xx_yyyy_zzzzz
2)CXxxxYyyyy
要么是1),要么是2)。
3 参数做成一个配置文件,其他地方引用
1)不会出现同步问题。
2)不会出现多份,节省内存。
4变量和函数的public和private
1)public给外面调用的。
看一个类的时候,通过看public和private就能看出来。
5
for (inti =0 ;
i<3;i++)
{
}
1)3 没具体含义,配置变量。
2)如果是在线程中,做成异步,不会阻塞线程,定义几个状态。根据状态来判断。
3)定义查询和创建接口。
6 map的使用
typedef
map<char*, CXxxxObject*>MapXxxxObject;
这样写,char* 是一个地址。要么自己重载 < 方法。
char* 内容和地址都不同,才唯一。
pXxxxObject =
m_map_xxxx[temp];
这里想要什么效果,用一个字符串作为key吗?如果是这样达不到你的要求。
如果是int就没这个问题。
7 返回值
1)return 0; 没有具体含义。
2)int和void
有值返回用int,没有值返回用void。
8 XxxxYyyy*
pXxxxYyyy
1)与NULL判断
2)
Assert(0)
assert(pXxxxYyyy);
3)自定义ASSERT,可以让assert在release中也有效。
4)比较
与NULL判断在release版本同样需要做逻辑判断。
assert保护现场,方面查找和定位问题。
8基类的析构函数定义为虚函数
如果不是虚函数,很容易内存泄露。子类里可能释放不了内存。
9在哪儿new,在哪儿delete
new和delete要在一个地方出现,这里可以是一个函数,也可以是一个类。
1)代码可读性强。
2)容易检查有没有内存泄露。
有的时候,因为new出来的东西需要放在队列中,那就在处理队列的类中new和delete。
10 测试
在系统联调前,要做好功能测试,单元测试,接口测试。自己写用例,可以借助工具来完成。
转载请原创链接:http://blog.csdn.net/wujunokay/article/details/27583147
好的编程习惯(一)