2008-10-25 72 views
3

多年来我遇到过很多不同风格的变量名称。是否有变量命名约定的简明目录?

目前的维基百科条目上的命名约定是相当轻...

我很乐意看到变量命名约定的简明目录,由名称/说明其标识,以及一些例子。

如果一个公约特别受到某个平台社区的青睐,那也是值得注意的。

我把它变成一个社区wiki,所以请为每个约定创建一个答案,并根据需要进行编辑。

+0

可能还没有人存在,因为不同的语言允许不同的模式作为变量名。但是这不应该阻止我们在这里创造一个。 – 2008-10-25 00:06:33

回答

4

最好的命名规则设置,我所看到的是书中“Code Complete”史蒂夫·麦康奈尔在那里大约命名约定和大量的示例的好节。他的例子通过了针对不同语言的许多“最佳实践”,但最终将由开发人员,开发经理或架构师决定具体的行动。

1

Sun发布了Java变量名称约定列表here。该列表包括命名包,类,接口,方法,变量和常量的约定。

变量一章规定

除了变量,所有的实例,类和类常量,均采用首字母小写混合的情况。内部词语以大写字母开头。变量名称不应以下划线_或美元符号$字符开头,即使两者都是允许的。

变量名应该简短而有意义。变量名称的选择应该是助记的 - 即设计为向临时观察者指示其使用意图。除了临时的“一次性”变量之外,应避免使用一个字符的变量名称。临时变量的常用名称是整数的i,j,k,m和n; c,d和e表示字符。

一些例子包括

int    i; 
char   c; 
float   myWidth; 
2

PEP8是Python代码的风格指南,它是Python社区中相对有影响力的标准库的一部分。对于奖励积分,除了涵盖Python标准库使用的命名约定之外,它还概括地提供了命名约定的概述。

根据PEP8:变量,实例变量,函数和方法在标准库都应该使用由下划线分隔小写字可读性:

foo 
parse_foo 
a_long_descriptive_name 

要从一个保留字区分名,附加的强调:

in_ 
and_ 
or_ 

名称是弱的私人(不通过“的M进口*”进口)开始以单下划线。名称加密的名称以双下划线开头。:

_some_what_private 
__a_slightly_more_private_name 

名称是Python的“特别”的方法开始,以双下划线结尾:

__hash__ # hash(o) = o.__hash__() 
__str__ # str(o) = o.__str__() 
1

无论你的命名规则是,它通常不会让你轻松区分:

  • 实例(通常为私有)变量
  • 局部变量(用作参数或局部函数)

对于本地变量,我使用基于indefinite article(a,an,某些)的用法的命名约定,并且没有关于实例变量的文章,如在此问题中关于variable prefix所述。

因此,一个前缀(我的方式,或任何其他前缀列表in that question)可以是一种改进变量命名约定的方法。

我知道你的问题不限于变量,我只想指出命名约定的一部分。

0

有,Einar Hoest的"Java Programmers Phrasebook"

他与方法机构的结构分析方法名的语法结构在一起,并且收集的信息,如:

添加 - [名词] - *这些方法通常具有参数和创建对象。 他们很少返回字段值。 该短语几乎出现在所有的 应用程序中。

等...从数百个开源项目中收集而来。

欲了解更多背景信息,请参考SLE08 paper