好的编程习惯(一)

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

newdelete要在一个地方出现,这里能够是一个函数,也能够是一个类。

1)代码可读性强。

2)easy检查有没有内存泄露。

 

有的时候,由于new出来的东西须要放在队列中。那就在处理队列的类中new和delete。

 

10 測试

在系统联调前。要做好功能測试,单元測试,接口測试。自己写用例,能够借助工具来完毕。

 转载请原创链接:http://blog.csdn.net/wujunokay/article/details/27583147

原文地址:https://www.cnblogs.com/claireyuancy/p/7141813.html