首页 > 代码库 > 好的编程习惯(一)
好的编程习惯(一)
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
好的编程习惯(一)