项目优化必须做的几件事

因为我手上的项目的功能基本完成,加上正在阅读《Effective C++》,所以在自己的项目中实践一些优化的细则。可能不是很全面和准确,确实我第一份工程项目的详细代码优化心得。

2. 找出项目出现的所有计时器ID值,以前都是自己手写的数字。现在全部定义为全局常量。根据《Effectve C++》的优化规则,项目中尽量少用#define,,所以少用宏定义。

  • 对策:定义这些值到GlobalUtil.h文件。定义为CONST UINT变量;
  • 另外还测试了不同的类可以使用相同的值。

3. 检查工程中出现的所有数字;看是否需要定义成有意义的宏,或者常量。一般数字直接写在程序中会造成代码维护的麻烦。因为特定的数字运算操作,后期的人看不懂为什么要进行这些操作。因此替换成有意义的宏或者常量。

  • 问题:我的工程中出现了关于Control Bar位置排放的纯数字的计算。这些都是不适当的。别人看不懂为什么要进行这些像素的加减。
  • 问题:关于鼠标不动5秒中,Control bar消失,我也是直接写的数值。到时候也会造成误解。对于更改时间也不容易。

4. 检查所有文件中的所有非内置类型变量的初始化。确保被初始化;

  • 对策:检查文件中所有的构造函数。在构造函数中初始化所有的内置类型成员变量

5. 检查所有Destroy函数;确保类中所用到的资源都释放;

6. 检查所有字符串的GetBuffer( )操作,确保有配对的ReleaseBuffer( )操作。

7. 检查所有new操作之后是否有delete操作;

8. 利用DebugView来去除工程中明显的内存泄漏

9. 检查类中变量。设置为PUBLIC的变量是否可以设置为PRIVATE;只供内部功能函数访问,或者仅仅作为状态标识;

10. 检查函数的参数,是否可以设置为CONST,或者是否可以更换为CONST REFERENCE;

11. 修改函数结构,编写异常处理代码。利用EXCEPTION编程;

12. 去掉没有必要存在的变量;

13. 功能相同的类的相同的部分可以设置权限为Public和Protected,将来可以写到基类;属于自己特定的部分就设置访问权限为Private(),不需要抽象到基类。

14. 只是提供类的私有变量的公共访问接口函数,那么可以直接在类中定义,构成内联函数;

15. 检查指针的初始化;指向资源指针删除操作和应用前的判断操作;

 

2008-12-25

16.如果在项目中使用指针,最好在使用指针之前有判断;判断其非空,这样可以减少很多错误。在特定的地方加入ASSERT语句有利于逻辑思维的澄清;

 

20090107

这几点源自CSDN的一篇文章:<<写出漂亮代码的 七种方法>>

http://vipnews.csdn.net/newscontent.aspx?pointid=2008_12_31_132117698

1.尽快结束 if语句

 

2.如果只是简单的布尔运算(逻辑运算),不要使用if语句

例如:

1 function isStringEmpty(str){

2    if(str === "") {

3        return true;

4    }

5    else {

6        return false;

7    }

8 }

可以写为:

1 function isStringEmpty(str){

2    return (str === "");

3 }


3.使用空白,这是免费的
很多开发者不愿意使用空白,就好像这要收费一样。我在此并非刻意地添加空白,粗鲁地打断代码的连贯性。在实际编写代码的过程中,会很容易地发现在什么地方加入空白,这不但美观而且让读者易懂.


4.不要使用无谓的注释
无谓的注释让人费神,这实在很讨厌。不要标出很明显的注释。

 

5.不要在源文件中留下已经删除的代码,哪怕你标注了

如果你使用了版本控制,那么你就可以轻松地找回前一个版本的代码。如果别人大费周折地读了你的代码,却发现是要删除的代码,这实在太恨人了。

 

6.不要有太长的代码

看太长的代码实在太费劲,尤其是代码本身的功能又很小。我并不是说非要坚持70个字符以内,但是一个比较理想的长度是控制在120个字符内。如果你把代码发布在互联网上,用户读起来就很困难。

 

7.不要在一个功能(或者函数内)有太多代码行
如果一个函数超过了50行,看起来有多费劲你知道么,还有没完没了的if循环,而且你还的滚动鼠标前后对照这段代码。对我而言,超过35行的代码理解起来就很困难了。我的建议是超过这个数字就把一个函数代码分割成两个。

你可能感兴趣的:(Pears)