我们如何缩短长变量名?

时间:2017-11-02 16:27:58

标签: naming-conventions naming

通常我们会听到使用描述性变量名来传达意图的建议。如果我们避免使用缩写,那么描述性名称有时会变长。

然而,应该存在一个限制,即变量名称可以在人眼中轻松消耗。例如,我在前公司看到了类似的东西:

int thisIsASuperLongVariableNameHere VS int thisIsASuperLongVariableNameThere VS int [] thisIsASuperLongVariableNamesHere

如果我们只浏览这些变量名称,它们看起来非常相似,我们的大脑无法有效地捕捉到它们的不同。

所以我的问题是,人类可以有效消耗的变量名的最大长度是多少?

如果变量名称超过了长度,缩短它们的标准方法是什么?

1 个答案:

答案 0 :(得分:2)

标准方法:

没有"标准方法"缩短它们。

我在Steve McConnel的Code Complete(第11章)中找到了一些很好的指导方针。

如果你有权访问它,请看一下(无论如何,它都是值得的书)。不幸的是,我不认为我可以引用他的整个列表而没有版权问题。

修改:我偶然发现post on another site引用了本书的整个部分,其中列出了这些指南。
我不确定报价是多么合法,所以我不在此重复 然而,因为它对某人有帮助,而且我大多澄清说,链接到它是好的 * ,我决定添加一个链接。
请注意,本书的其余部分包含有关命名的更多信息,特别是关于短名称/前缀的信息。
本书的其余部分提供了丰富的信息,任何开发人员都应该知道这些信息,这些信息在发布13年后仍然很重要 因此,我建议所有读者购买整个book即使我链接的报价满足他们当前的需求,并考虑该报价只是一个开胃菜。

最大长度:

  • 目前尚未达成共识"最大长度&#34 ;;它可能被大多数人认为最好不要夸大其长度,但在多大程度上没有达成共识(甚至讨论很多)。
  • 代码完成有一个很好的引用1990 study,其中发现当变量的名称平均为10到16个字符时,调试程序所需的工作量最小,而“名称平均为8到20的程序字符几乎一样容易调试“。
  • 最近可能有更多的研究(无论是编程还是一般的阅读),但我不知道任何研究。
  • 最重要的是使用你的良好感觉,请记住,较长名称传达的清晰度优势通常会超过他们在阅读速度和潜在混淆方面的劣势(所以如果有疑问,最好倾向于冗长)
  • 你应该记住,在不同情况下瞄准不同长度是有意义的 例如,在Clean Code中,鲍勃叔叔建议

      

    名称的长度应与其范围的大小相对应

    通常这可以简化为:

    • 对于非常短的方法的局部变量,甚至可以使用单字母名称
    • 对于大多数其他东西使用描述性的,相当长的名字
    • 对于很少使用的东西,请考虑使用更冗长的东西。
  • 这适用于名称'一般的决定
    当你不确定某个名字时(或者简要地)与你的同事讨论这个名字 这不能保证给你更好的名字,但其他人'批准将让您更自信地继续完成其余的工作 请注意,这可能会让你倾向于(太)糟糕的名字,因为你很容易从繁忙或漠不关心的同事那里得到仓促的批准;他们的批准将在未来保护您免受投诉,但您可能仍然会给新员工带来麻烦,甚至对您现在几乎不记得曾经写过的自己造成麻烦。

名称过于相似:

至于你所做的名字的例子,一般来说,如果可以的话,最好尽量避免名字如此相似。
如果你的命名约定不禁止它,你通常可以使用一些简单的技巧来消除相似性:

thisIsASuperLongVariableName_Here
thisIsASuperLongVariableName_There
thisIsASuperLongVariableName_Here_Array