资源描述
编
程
命
名
规
范
目 录
1.1 整体原则 1
1.1.1 强制性命名规范 1
1.1.2建议性命名规范 1
1.2 详细规范 1
1.3 检查原则 2
1.1 整体原则
1.1.1 强制性命名规范
² 同一性:在编写一个子模块或派生类的时候,要遵循其基类或整体模块的命名风格,保持命名风格在整个模块中的同一性。
² 标识符组成:标识符采用英文单词或其组合,应当直观且可以拼读,使用注释的方式表明其含义。
² 避免在不同级别的作用域中重名:程序中不要出现名字完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但容易使人误解。
² 避免名字中出现数字编号:尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号。这是为了防止程序员偷懒,不肯为命名动脑筋而导致产生无意义的名字(因为用数字编号最省事)。
1.1.2建议性命名规范
² 最小化长度与最大化信息量原则:在保持一个标识符意思明确的同时,应当尽量缩短其长度。
² 避免过于相似:不要出现仅靠大小写区分的相似的标识符,例如“i”与“I”,“function”与“Function”等等。
² 正确命名具有互斥意义的标识符:用正确的反义词组命名具有互斥意义的标识符,如:"nMinValue"和"nMaxValue","GetName()" 和 "SetName()"等等。
1.2 详细规范
(1)类和接口:类名都以大写字母“C”开头,代表Class。接口以大写"I"开头,代表Interface。后跟一个或多个单词,每个单词的首字母要大写。推荐用“名词”或“形容词+名词”的形式,例如:CAnalyzer, CFastVector等等。
(2)函数:函数的名称由一个或多个单词组成,每个单词的首字母要大写,最长不得超过20个字符。
l 全局函数应当使用“动词”或者“动词+名词”(动宾词组)的形式,例如:GetName(), DrawBox()。
l 类成员函数应当只使用“动词”,被省略掉的名词就是对象本身。例如: box->Draw()。私有成员和保护成员函数的开头应当加上一个下划线“_”以示区别。虚函数习惯以“Do”开头。
l 回调和事件处理函数习惯以单词“On”开头。例如:OnTimer()。
(3)变量:变量是程序中使用最多的标识符,变量名由“作用域前缀+下划线+类型前缀+变量名字”组成,例如:int g_iDrawMode。变量最长不得超过20个字符。
l 作用域前缀标明一个变量的可见范围,全部小写字母。静态变量以“s”表示。全局变量以“g”表示。局部变量以“l”为前缀。类的成员变量以“m”表示。类的静态成员变量以“ms”表示。类的全局成员变量以“mg”表示,建议不要直接使用类的全局成员变量。
l 类型前缀标明一个变量的类型,全部小写字母。布尔型变量以“b”表示。字符型变量以“c”表示。字符串变量以“s”表示。整型和位域变量以“n”表示。长整型变量以“l”表示。浮点型变量以“f”表示。字节型变量(BYTE)以“by”表示。字(WORD)变量以“w”表示。数组以“g”表示。指针型变量以“p”表示。枚举型变量以“e”表示。结构体变量以“st”表示。对象句柄以“h”表示。类的实例以“i”表示。
l 变量名字应当使用“名词”或者“形容词+名词”形式,一个或多个单词组成,每个单词的首字母要大写。
l 对于某些用途简单明了的局部变量(for、while),也可以使用简化的方式,如:i, j, k, x, y, z。
(4)常量:由“类型前缀+常量名字”组成。常量名字由全大写字母组成,单词间通过下划线来界定,如:cDELIMITER, nMAX_BUFFER。类型前缀的定义与变量命名规则中的相同。
(5)结构体、宏、枚举、联合体定义:全部大写字母组成,单词间通过下划线来界定,如STUDENT_INFO。
(6)注释:注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。
l 边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。
l 注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。
l 当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于阅读。
1.3 检查原则
1、对于强制性命名规范,将采用抽样检查方案
u 关键模块代码抽样50%;
u 非关键模块代码抽样20%;
2、在抽样范围内发现错误超过两个,甲方停止检查。要求承包方自行检查,并提交检查记录;
第 1 页(共 2页)
展开阅读全文