3

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

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

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

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

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

4

5 回答 5

4

我见过的最好的命名约定集是在“代码完整”一书中,史蒂夫·麦康奈尔(Steve McConnell)有一个关于命名约定和大量示例的精彩部分。他的示例贯穿了不同语言的许多“最佳实践”,但最终由开发人员、开发经理或架构师来决定具体的行动。

于 2008-10-25T00:45:55.640 回答
2

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__()
于 2008-10-25T00:54:58.430 回答
1

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

关于变量状态的部分

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

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

一些例子包括

int             i;
char            c;
float           myWidth;
于 2008-10-25T00:10:52.217 回答
1

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

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

我使用基于不定冠词(a, an, some) 用于局部变量的命名约定,并且没有用于实例变量的冠词,正如关于变量前缀的问题中所解释的那样。

因此,前缀(我的方式,或该问题中列出的任何其他前缀)可以是改进变量命名约定的一种方式。

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

于 2008-10-25T01:29:24.773 回答
0

有,Einar Hoest的“Java 程序员手册” 。

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

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

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

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

于 2008-10-27T12:59:45.837 回答