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

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

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

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

我正在将其转变为社区 wiki,因此请为每个约定创建一个答案,并根据需要进行编辑。

有帮助吗?

解决方案

我见过的最佳命名约定集在书中“代码完整" Steve McConnell在这里有很多关于命名约定和大量例子的部分。他的例子贯穿了许多“最佳实践”。对于不同的语言,但最终由开发人员,开发经理或架构师决定具体行动。

其他提示

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__()

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

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

我使用基于以下用途的命名约定 不定冠词 (a, an, some) 用于局部变量,并且没有关于实例变量的文章,如这个问题中所解释的 变量前缀.

所以一个前缀(无论是我的方式,还是列出的任何其他前缀 在那个问题中)可以是精炼的一种方式 多变的 命名约定。

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

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

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

  

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top