编码工艺Coding Techniques)-定名和注释
编码工艺Coding Techniques)-命名和注释转载请注明出处:http://blog.csdn.net/horkychen(节选自MSDN-Codin
编码工艺Coding Techniques)-命名和注释
转载请注明出处:http://blog.csdn.net/horkychen
(节选自MSDN-Coding Techniques and Programming Practices)

命名 (Names)
命名最有利于了解程序的逻辑结构。一个名字说明是"什么(what)”比说明"如何(how)"更重要。通过命名可以避免暴露底层的实现,从而保留一个抽象层,简化了程序的复杂性。例如,你可以使用GetNextStudent()代替GetNextArrayElement()。
一个命名的宗旨是,命名应当基于它的目的进行推敲。名称必须简洁且意义明确。对编程(programmatically)而言,命名就是为了易于区分彼此。表达准确的名称便于阅读,也便于看代码的人理解。不过具体的命名方式仍受限于所用的语言和遵循的标准。
以下是推荐的命名技巧:
例程(Routines, 过程或函数)
- 避免可能被误解的名称,多为主观性的名词,如 Analyze()函数,或变量 xxK8。这样的名字存在歧义。
- 在面向对象的语言,类的属性名称中不需要包含类的名称。如 Book.BookTitle。可以使用 Book.Title代替。
- 使用动词 - 名词(动宾)的结构为方法命名, 如 CalculateInvoiceTotal()。
- 在允许函数重载的语言中,所有重载应该执行类似的功能。对于那些不允许函数重载的语言中,为相似功能的函数建立一个命名标准。
变量(Variables)
- 如果可能,在变量名后追加计算限定符(AVG,SUM,Min,Max,Index)。
- 在变量名中成对使用反义词,如min/max, begin/end, and open/close。
- 由几个单词连接的变量名称,使用大小写混合的格式,以简化它们。此外,为了帮助区分变量和例程(函数,routine),例程名称使用Pascal命名法,所有单词的首字母都为大写(CalculateInvoiceTotal)。变量名则使用驼峰命名法(Camel casing)(如documentFormatType),除第一个单词首字母小写外其余每个单词除首字母全部大写。
- 布尔变量名称应当有是/否或真/假的意味,如 fileIsFound.
- 在命名状态变量时,避免使用Flag。相对于布尔值,它们可能有两个以上的值。相对于documentFlag,可以使用一个更具描述性的名称,如documentFormatType。
- 即使只在几行代码中出现的一个临时变量,也尽量使用有意义的名称。只把i,j这样的单字母变量用作小的循环变量。
- 如果使用匈牙利命名法,定义一个明确的标准前缀列表,以方便项目中的开发者使用。欲了解更多信息,请参阅“匈牙利表示法”
- 可以为变量名增加一个符号来标识作用域,如前缀g_的全局变量和m_的模块/类级成员变量。
- 常量应该全部大写,且在单词间用下划线隔开。如NUM_DAYS_IN_WEEK。对于枚举变量,应当有一个共同的前缀。如FONT_ARIAL或FONT_ROMAN。
数据表(Tables)
- 命名表(tables)时,以单数形式命名。例如,应当使用Employee,而不是Employees。
- 表中的列命名时,不要重复的表的名称,例如,避免在名为Employee的表中定义字段EmployeeLastName。
- 不要在列的命名中包含数据类型。日后变更数据类型时,这样就可以简化工作。
其它(Miscellaneous)