1、避免重复,否则出现bug多处一样的代码让你无从下手,除非debug调试;
2、相同的功能逻辑应归类划分,管理好类似逻辑,试着对比抽取;
3、编程不要急于编程,想清楚输入和输出,异常输入的处理,对函数返回码的验证;否则,一个小小的失误可能花费你1个小时的时间去寻找莫名其妙的bug;
4、做好自己的工具库,比如:日志输出;Unicode与ANSI多字符的转换;一些数据处理库:四舍五入、三角函数;
5、做好版本控制;尽情的使用SVN,GIT,前提是控制版本的同时,写好版本描述;
6、使用语言本身的库,抛弃基于平台的库API,多使用stl等支持多平台的库;
7、不应该出现注释的代码;关键的地方进行注释,不需要注释的地方不要有注释;
8、类的规模尽量的小;类中成员变量的使用出现的频率尽量少,在类中使用,最好使用引用的形式来使用成员变量;这样你在查找引用或者查找全部的时候,不会出现几百处的使用;
10、不使用全局变量,在多数多线程程序中,全局变量意味着出乎意料的bug产生;
11、莫名其妙的bug总是有原因的,使用二分法查找bug;
12、调试bug、复现bug时不要冲动,电脑是不会犯错的,一切都是因为你的技术不过关;
13、对文件的读写操作,当需要频繁的读取,不要频繁的使用fread或者fwrite,要不整段读取,要不对大文件采用文件内存映射;大块new和频繁的new是会大量消耗系统时间的;
14、Debug调试下出现的assert提示,应该一一查找原因;因为assert出现总是有原因的;
15、每一段功能逻辑都要跟一遍,有时候代码不是你想像的那样进行的,如;你要释放一个类指针,按照void*方式传入时,delete是不用调用该类的析构函数的,正确的方式是delete(A*)ptr;
16、当不知道程序需不需要优化,就不要着急优化,先保证功能正常使用;
12、修改代码时,一定要上下文读懂,不要急于修改;
13、多向别人学习;
14、把所有修改涉及到的功能提示测试,覆盖测试;
15、保留每次提交的版本;