长变量名称

时间:2010-06-05 19:15:25

标签: variables naming

假设我有一个包含文件中搜索引擎名称数量的变量,你会说出什么名字?

  • number_of_seach_engine_names
  • search_engine_name_count
  • num_search_engines
  • 发动机
  • engine_names
  • 其他名字?

第一个名称描述了变量包含的内容,但是它不是太长了?,有关选择变量名称的建议吗?特别是如何缩短名称太长或使用什么样的缩写?

10 个答案:

答案 0 :(得分:24)

numEngineNames怎么样?

选择变量名称比艺术更具艺术性。你想要的东西不需要一个时代来打字,但足够长,以表达。这是一种主观的平衡。

问问自己,如果有人第一次看到变量名称,那么该人是否有理解其目的?

答案 1 :(得分:15)

当存在一个同样表达变量目的的较短名称时,名称太长。

我认为engineCount会好起来的。发动机名称的数量可能与发动机的数量相等。

请参阅JaredPar的帖子。

答案 2 :(得分:6)

这取决于变量的范围。短函数中的局部变量通常不值得称为“完美名称”,只需将其称为engine_count或类似的东西。通常意思很容易发现,如果没有评论可能比两行变量名更好。

更广范围的变量 - 即全局变量(如果它们真的必要!),成员变量 - 值得恕我直言几乎自我纪录片。当然查找原始声明并不困难,大多数IDE会自动执行,但变量的标识符不应该没有意义(即numbercount)。

当然,所有这些都取决于您的个人编码风格和工作场所的惯例。

答案 3 :(得分:2)

取决于上下文,如果它是局部变量,例如

int num = text.scan(SEARCH_ENGINE_NAME).size();

表达式的右侧越明确,我选择的名称越短。理性的是,我们处于可能4-5行的有限范围内,因此可以假设读者能够在短名称和右手表达之间建立联系。但是,如果它是一个类的领域,我宁愿尽可能地冗长。

答案 4 :(得分:2)

查看类似的question

primary technical imperative是为了降低复杂性。应该命名变量以降低复杂性。有时这会导致名称缩短,有时名称更长。它通常对应于维护者理解代码复杂性的难度。

在光谱的一端,你有循环迭代器和索引。这些可以有像i或j这样的名字,因为它们只是那么普通和简单。给他们更长的名字只会造成更多的混乱。

如果频繁使用变量但代表更复杂的变量,则必须给它一个明确的名称,这样用户每次使用它时都不必重新学习它的含义。

在频谱的另一端是极少使用的变量。你仍然希望减少这里的混淆,但是给它一个简短的名字就不那么重要了,因为重新学习变量目的的惩罚不经常付出。

答案 5 :(得分:1)

在考虑您的代码时,请尝试从其他人的角度来看待它。这不仅有助于挑选名称,还有助于保持代码的整体可读性。

拥有非常长的变量名称会使代码的可读性变得混乱,因此您希望避免使用它们。但另一方面,你要避免使用超短名称或缩写词“n”或“ne”。像这样的简短而神秘的名字会导致有人试图阅读你的代码来撕掉他们的头发。例如,通常一到两个字母变量用于小任务,例如在for循环中递增。

所以你留下的是这两个极端之间的平衡。 “Num”是一个常用的缩写,任何半经验的程序员都会立即知道你的意思。所以像“numEngines”或“numEngineNames”这样的东西会很好用。除此之外,您还可以在第一次使用变量时在代码旁边添加注释。这将让读者准确地知道你正在做什么,并有助于避免任何可能的混淆。

答案 6 :(得分:1)

我将其命名为“search_engine_count”,因为它拥有搜索引擎的数量。

答案 7 :(得分:0)

使用 Esc + _ + Esc 撰写:

this_is_a_long_variable = 42

Esc + _ + Esc _在Mathematica中不是相同的字符。这就是为什么你被允许使用前者而不是后者。

答案 8 :(得分:-1)

如果它是函数中的局部变量,我可能会将其称为n,或者ne。大多数函数只包含两个或三个变量,因此不需要长名称。

答案 9 :(得分:-3)

取决于寿命或预期目的。然而,这包括发育寿命。我最近命名了一个矢量“stuff”,因为它只用于实验。

如果变量仅在其使用旁边声明或定义,那么我就不会打扰一个富有表现力的名字。如果没有,我会去找一个医学名字。我永远无法理解为什么人们会使用超过10个字符的名字。对于你提出的问题,我会选择像enames这样的东西。