这些年来,我遇到了许多不同风格的变量名。
当前关于命名约定的维基百科条目相当简单......
我希望看到一个简洁的变量命名约定目录,通过名称/描述来识别它,以及一些示例。
如果某个约定特别受到某个平台社区的青睐,那也值得注意。
我正在把它变成一个社区维基,所以请为每个约定创建一个答案,并根据需要进行编辑。
这些年来,我遇到了许多不同风格的变量名。
当前关于命名约定的维基百科条目相当简单......
我希望看到一个简洁的变量命名约定目录,通过名称/描述来识别它,以及一些示例。
如果某个约定特别受到某个平台社区的青睐,那也值得注意。
我正在把它变成一个社区维基,所以请为每个约定创建一个答案,并根据需要进行编辑。
我见过的最好的命名约定集是在“代码完整”一书中,史蒂夫·麦康奈尔(Steve McConnell)有一个关于命名约定和大量示例的精彩部分。他的示例贯穿了不同语言的许多“最佳实践”,但最终由开发人员、开发经理或架构师来决定具体的行动。
PEP8是 Python 代码的样式指南,是标准库的一部分,在 Python 社区中比较有影响力。对于加分,除了涵盖 Python 标准库使用的命名约定外,它还提供了一般命名约定的概述。
根据 PEP8:标准库中的变量、实例变量、函数和方法应该使用下划线分隔的小写单词以提高可读性:
foo
parse_foo
a_long_descriptive_name
要将名称与保留字区分开来,请附加下划线:
in_
and_
or_
弱私有的名称(不是由 'from M import *' 导入的)以单个下划线开头。使用名称修改强制执行隐私的名称以双下划线开头。:
_some_what_private
__a_slightly_more_private_name
Python“特殊”方法的名称以双下划线开头和结尾:
__hash__ # hash(o) = o.__hash__()
__str__ # str(o) = o.__str__()
Sun在此处发布了 Java 的变量名称约定列表。该列表包括命名包、类、接口、方法、变量和常量的约定。
关于变量状态的部分
除变量外,所有实例、类和类常量都是大小写混合,首字母小写。内部单词以大写字母开头。变量名称不应以下划线 _ 或美元符号 $ 字符开头,即使两者都允许。
变量名应该简短而有意义。变量名的选择应该是助记符,也就是说,旨在向不经意的观察者表明其使用的意图。应避免使用单字符变量名称,临时“一次性”变量除外。临时变量的常用名称是 i、j、k、m 和 n,表示整数;c、d 和 e 用于字符。
一些例子包括
int i;
char c;
float myWidth;
有,Einar Hoest的“Java 程序员手册” 。
他分析了方法名的语法结构和方法体的结构,收集了如下信息:
add-[名词]-*这些方法通常有参数并创建对象。他们很少返回字段值。该短语几乎出现在所有应用程序中。
等等......从数百个开源项目中收集。
有关更多背景信息,请参阅他的SLE08 论文。