是否有变量命名约定的简明目录?

时间:2008-10-25 00:02:23

标签: variables dictionary naming-conventions naming catalog

多年来我遇到过许多不同风格的变量名称。

关于命名约定的当前维基百科条目相当轻松......

我希望看到变量命名约定的简明目录,通过名称/描述和一些示例来识别它。

如果某个会议特别受某个平台社区青睐,那也值得注意。

我将其转变为社区维基,所以请为每个约定创建一个答案,并根据需要进行编辑。

5 个答案:

答案 0 :(得分:4)

我见过的最好的命名约定集在“Code Complete”一书中。史蒂夫麦康纳尔在那里有很多关于命名约定和大量例子的章节。他的例子针对不同语言运行了许多“最佳实践”,但最终还是由开发人员,开发经理或架构师决定具体行动。

答案 1 :(得分:2)

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

根据PEP8:标准库中的变量,实例变量,函数和方法应该使用由下划线分隔的小写单词以便于阅读:

foo
parse_foo
a_long_descriptive_name

要区分名称和保留字,请附加下划线:

in_
and_
or_

弱私有名称(不是由'M import *'导入)以单个下划线开头。使用名称修改强制执行隐私的名称以双下划线开头。:

_some_what_private
__a_slightly_more_private_name

Python'特殊'方法的名称以双下划线开头和结尾:

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

答案 2 :(得分:1)

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

变量状态部分

  
    

除变量外,所有实例,类和类常量都是小写的第一个字母。内部单词以大写字母开头。变量名不应以下划线_或美元符号$字符开头,即使两者都是允许的。

         

变量名称应该简短而有意义。变量名称的选择应该是助记符 - 即旨在向不经意的观察者表明其使用的意图。除临时“一次性”变量外,应避免使用单字符变量名。临时变量的通用名称是整数的i,j,k,m和n; c,d和e表示字符。

  

一些例子包括

int             i;
char            c;
float           myWidth;

答案 3 :(得分:1)

无论您的命名惯例是什么,通常都不允许您轻松区分:

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

我使用基于indefinite article(a,an,some)用于局部变量的命名约定,而没有用于实例变量的文章,如关于variable prefix的问题中所解释的那样。 / p>

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

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

答案 4 :(得分:0)

有Einar Hoest的"Java Programmers Phrasebook"

他分析了方法名称的语法结构以及方法体的结构,并收集了如下信息:

  

add- [noun] - * 这些方法通常有参数和创建对象。   他们很少返回字段值。   这个短语几乎全部出现   应用

etcetera ...从数百个开源项目中收集。

有关更多背景信息,请参阅他的SLE08 paper