文档介绍:质量过程- 建议性实践- 高效编码
部门:
IT技术部
撰写:
叶刚
文档编号:
文档修改记录
版本号
主要作者
修改记录
完成日期
马广杰、叶刚
创建
2011-02-12
叶刚
修订:
添加有效性注释
子程序设计(聚合、耦合)
2011-09-08
叶刚
修订:
添加主题之高质量主程序
2011-09-20
叶刚
修订:
防御性编程
2011-10-20
编码的Checklist编号范围是C001 – C999
标准定义
重要性定义
重要
一般
参考
检查表表头
项目名称:
项目编号:
检查人:
检查日期:
共检查项:
(个)
有效检查项:
(个)
通过项:
(个)
通过率:
(个)
命名规范
序号
审查
检查项
重要性
通过情况
情况说明
C001
变量命名要清晰地描述所代表的客观实体,方法命名要清晰地描述所作的工作;
重要
是[] 否[] 免[]
C002
变量名的长度为9到15个字符,方法名为15到20个字符;
是[] 否[] 免[]
C003
命名避免使用数字;
是[] 否[] 免[]
C004
常量使用名词或名词词组命名,并使用“下划线”分割大写单词的方式,如DEFAULT_VALUE;
是[] 否[] 免[]
C005
私有成员变量使用名词或名词词组命名,并使用“下划线”加“骆驼命名法”的方式,如_userName;
是[] 否[] 免[]
C006
保护成员变量使用名词或名词词组命名,并使用“骆驼命名法”的方式,如userName;
是[] 否[] 免[]
C007
公有成员变量使用名词或名词词组命名,并使用“Pascal命名法”的方式,如UserName;
是[] 否[] 免[]
C008
局部变量和参数使用名词或名词词组命名,并使用“骆驼命名法”的方式,如userName;
是[] 否[] 免[]
C009
属性使用名词或名词词组命名,并使用“Pascal命名法”的方式,如UserName;
是[] 否[] 免[]
C010
方法使用动词或动宾短语命名,并使用“Pascal命名法”的方式,如GetUser();
重要
是[] 否[] 免[]
C011
事件使用名词或名词词组命名,并使用“Pascal命名法”的方式;
是[] 否[] 免[]
C012
类、结构、枚举(枚举类和枚举值)使用名词或名词词组命名,并使用“Pascal命名法”的方式,如User;
是[] 否[] 免[]
C013
异常类使用名词或名词词组命名,并使用“Pascal命名法”加“Exception”的方式;
重要
是[] 否[] 免[]
C014
接口使用名词或名词词组命名,并使用“I”加“Pascal命名法”的方式,如IUser;
重要
是[] 否[] 免[]
C015
命名空间使用名词或名词词组命名,并使用“Pascal命名法”的方式;
是[] 否[] 免[]
C016
文件名要和类名相同;
是[] 否[] 免[]
C017
变量名中如果含有计算限定词的话,是否将其放在最后(如SaleTotal)?是否在名称中用Count或Index来代替了Num?
是[] 否[] 免[]
C018
简单循环中的循环控制变量的名字,常用的是i、j、k等;如果循环体较长是嵌套循环的话,应用有含义的名称,从而避免了控制变量的冲突;
重要
是[] 否[] 免[]
C019
是否用更富于含义的名称来代替了被叫作"temp"的临时变量?
是[] 否[] 免[]
C020
用暗含非真即假的名字来给逻辑方法命名,如用Is作为逻辑变量名的前缀;
重要
是[] 否[] 免[]
创建子程序
序号
审查
检查项
重要性
通过情况
情况说明
C021
考虑过如何测试子程序了吗?
重要
是[] 否[] 免[]
C022
是否从模块化水平或者满足时间和内存需求角度考虑过效率问题?
是[] 否[] 免[]
C023
是否寻找过有帮助的算法?
是[] 否[] 免[]
C024
是从几个设计方案中选择了最好的,还是随意选择了一个方案?
是[] 否[] 免[]
主题之【高质量子程序】
创建子程序理由
降低复杂性
避免重复代码段
限制改动带来的影响
隐含顺序
改进性能
进行集中控制
隐含数据结构
隐含指针操作
隐含全局变量
促进重新使用代码段
计划开发一个软件族
改善某一代码段可读性
改善可移植性
分隔复杂操作
独立非标准语言函数