良好的编程习惯(一)
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基类的析构函数定义为虚函数
假设不是虚函数,非常easy内存泄露。
子类里可能释放不了内存。
9在哪儿new,在哪儿delete
new和delete要在一个地方出现,这里能够是一个函数。也能够是一个类。
1)代码可读性强。
2)easy检查有没有内存泄露。
有的时候。由于new出来的东西须要放在队列中。那就在处理队列的类中new和delete。
10 測试
在系统联调前,要做好功能測试。单元測试,接口測试。自己写用例,能够借助工具来完毕。
转载请原创链接:http://blog.csdn.net/wujunokay/article/details/27583147
版权声明:本文博主原创文章。博客,未经同意不得转载。