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

Is there a concise catalog of variable naming-conventions?

提问人: 提问时间:10/25/2008 最后编辑:Toybuilder 更新时间:6/1/2017 访问量:1777

问:

这些年来,我遇到了许多不同风格的变量名称。

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

我很想看到一个简明的变量命名约定目录,通过名称/描述和一些例子来标识它。

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

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

变量 字典 命名约定命名 目录

评论

0赞 Bill the Lizard 10/25/2008
可能还没有一个已经存在的,因为不同的语言允许不同的模式作为变量名称。但这不应该阻止我们在这里制作一个。

答:

1赞 Bill the Lizard #1

Sun 在这里发布了 Java 的变量名称约定列表。该列表包括用于命名包、类、接口、方法、变量和常量的约定。

关于变量的部分指出

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

变量名称应简短但有意义。变量名称的选择应该是助记符,也就是说,旨在向偶然的观察者表明其使用意图。应避免使用单字符变量名称,但临时的“一次性”变量除外。临时变量的通用名称是整数的 i、j、k、m 和 n;C、D 和 E 表示字符。

一些例子包括

int             i;
char            c;
float           myWidth;
4赞 Joe Basirico #2

我见过的最好的命名约定集是在《代码完成》一书中,Steve McConnell 在那里有一个很好的关于命名约定和许多示例的部分。他的例子贯穿了不同语言的许多“最佳实践”,但最终还是留给开发人员、开发经理或架构师来决定具体的行动。

2赞 Aaron Maenpaa #3

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__()
1赞 2 revsVonC #4

无论您的命名约定是什么,它通常都无法让您轻松区分:

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

我使用基于局部变量的不定冠词(a、an、some)的命名约定,而实例变量则没有冠词,如这个关于变量前缀的问题中所述。

因此,前缀(无论是我的方式,还是该问题中列出的任何其他前缀)都可以是优化变量命名约定的一种方式。

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

0赞 akuhn #5

还有 Einar Hoest 的“Java 程序员短语手册”。

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

add-[名词]-*这些方法通常具有参数并创建对象。 它们很少返回字段值。 这句话几乎出现在所有 应用。

诸如此类。。。从数百个开源项目中收集。

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