10 代码编辑、编译、审查
(1)打开编译器的所有告警开关对程序进行编译。
(2)在产品软件(项目组)中,要统一编译开关选项。
(3)通过代码走读及审查方式对代码进行检查。代码走读主要是对程序的编程风格如注释、命名等以及编程时易出错的内容进行检查,可由开发人员自己或开发人员交叉的方式进行;代码审查主要是对程序实现的功能及程序的稳定性、安全性、可靠性等进行检查及评审,可通过自审、交叉审核或指定部门抽查等方式进行。
(4)测试部测试产品之前,应对代码进行抽查及评审。
(5)编写代码时要注意随时保存,并定期备份,防止由于断电、硬盘损坏等原因造成代码丢失。
(6)同产品软件(项目组)内,最好使用相同的编辑器,并使用相同的设置选项。同一项目组最好采用相同的智能语言编辑器,如Elipse等,并设计、使用一套缩进宏及注释宏等,将缩进等问题交由编辑器处理。
(7)要小心地使用编辑器提供的块拷贝功能编程。当某段代码与另一段代码的处理功能相似时,许多开发人员都用编辑器提供的块拷贝功能来完成这段代码的编写。由于程序功能相近,故所使用的变量、采用的表达式等在功能及命名上可能都很相近,所以使用块拷贝时要注意,除了修改相应的程序外,一定要把使用的每个变量仔细查看一遍,以改成正确的。不应指望编译器能查出所有这种错误,比如当使用的是全局变量时,就有可能使某种错误隐藏下来。
(8)合理地设计软件系统目录,方便开发人员使用。方便、合理的软件系统目录,可提高工作效率。目录构造的原则是方便有关源程序的存储、查询、编译、链接等工作,同时目录中还应具有工作目录----所有的编译、链接等工作应在此目录中进行,工具目录----有关文件编辑器、文件查找等工具可存放在此目录中。
(9)某些语句经编译后产生告警,但如果你认为它是正确的,那么应通过某种手段去掉告警信息。例如,在Borland C/C++中,可用“#pragma warn”来关掉或打开某些告警。
示例:
#pragma warn -rvl // 关闭告警
int examples_fun( void )
{
// 程序,但无return语句。
}
#pragma warn +rvl // 打开告警
编译函数examples_fun时本应产生“函数应有返回值”告警,但由于关掉了此告警信息显示,所以编译时将不会产生此告警提示。
使用代码检查工具(如C 语言用PC-Lint )对源程序检查,使用软件工具(如 LogiSCOPE )进行代码审查。