软件编程规范
可移植性和可重用性。 示例:
for( idx=0 ; idx<40; dest[idx]=src[idx++] ) ;
这段代码中,在不同的操作系统 ,有不同的执行顺序。是先执行idx++ 呢?还是先执行dest[idx]=src[idx++] ?
正确的写法是:
for (idx=0 ; idx<40; idx ++) {
dest[idx]=src[idx] ; }
建议8-4:时刻注意表达式是否会上溢、下溢。
示例:如下程序将造成变量下溢。
unsigned char size ;
while (size-- >= 0) // 将出现下溢 {
... // program code }
当size等于0时,再减1不会小于0,而是0xFF,故程序是一个死循环。应如下修改。 char size; // 从unsigned char 改为char while (size-- >= 0) {
... // program code }
规则8-4:使用第三方提供的软件开发工具包或控件时,要注意以下几点:
(1)充分了解应用接口、使用环境及使用时注意事项。 (2)不能过分相信其正确性。
(3)除非必要,不要使用不熟悉的第三方工具包与控件。
说明:使用工具包与控件,可加快程序开发速度,节省时间,但使用之前一定对它有较充分的了解,同时第三方工具包与控件也有可能存在问题。
软件编程规范
规则8-5:资源文件(多语言版本支持),如果资源是对语言敏感的,应让该资源与源代码文件脱离,具体方法有下面几种:使用单独的资源文件、DLL文件或其它单独的描述文件(如数据库格式)。
规则8-6:打开编译器的所有告警开关对程序进行编译,并且要确认、处理所有的编译告警
建议8-5:通过代码走读及审查方式对代码进行检查。
说明:代码走读主要是对程序的编程风格如注释、命名等以及编程时易出错的内容进行检查,可由开发人员自己或开发人员交叉的方式进行;代码审查主要是对程序实现的功能及程序的稳定性、安全性、可靠性等进行检查及评审,可通过自审、交叉审核或指定部门抽查等方式进行
建议8-6:如果可能,单元测试要覆盖98%以上的代码,尽可能早地发现和解决问题。
说明:
1. 尽早发现问题可以避免问题的扩大化,减少运维成本。
2. 开发人员要树立“不要依赖测试人员”的观念,且不要抱侥幸心理,会出问题的地方
总是会出问题的。
建议8-7:如果可能,尽量使用pc-lint,purify,LogiScope 等测试工具,以提高效率