Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 长变量名_Variables_Naming - Fatal编程技术网

Variables 长变量名

Variables 长变量名,variables,naming,Variables,Naming,假设我有一个变量,它包含一个文件中搜索引擎名称的数量,您会如何命名它 搜索引擎名称的数量 搜索引擎名称计数 数字搜索引擎 引擎 引擎名称 其他名字 名字准确地描述了变量所包含的内容,但它不是太长了吗?关于选择变量名有什么建议吗?尤其是如何缩短过长的名称或使用何种缩写?这取决于变量的范围。短函数中的局部变量通常不值一个“完美的名称”,只要称它为engine\u count或类似的名称即可。通常意义很容易识别,如果没有注释,可能比两行变量名更好 范围更广的变量——即全局变量(如果它们真的有必要的

假设我有一个变量,它包含一个文件中搜索引擎名称的数量,您会如何命名它

  • 搜索引擎名称的数量
  • 搜索引擎名称计数
  • 数字搜索引擎
  • 引擎
  • 引擎名称
  • 其他名字

名字准确地描述了变量所包含的内容,但它不是太长了吗?关于选择变量名有什么建议吗?尤其是如何缩短过长的名称或使用何种缩写?

这取决于变量的范围。短函数中的局部变量通常不值一个“完美的名称”,只要称它为
engine\u count
或类似的名称即可。通常意义很容易识别,如果没有注释,可能比两行变量名更好

范围更广的变量——即全局变量(如果它们真的有必要的话!)、成员变量——应该给IMHO起一个几乎是自我记录的名字。当然,查找原始声明并不困难,大多数IDE都会自动执行,但变量的标识符不应该是无意义的(即
number
count


当然,所有这些在很大程度上取决于你的个人编码风格和工作场所的惯例。

那么
numEngineNames

选择变量名与其说是科学,不如说是艺术。你想要的东西,不需要一个时代的类型,但足够长的表达。这是一种主观平衡


扪心自问,如果有人第一次看到变量名,那么这个人是否有理由理解它的用途?

如果存在一个同样表达变量用途的较短名称,那么名称就太长了

我想
engineCount
在这里就可以了。引擎名称的数量大概等于引擎的数量


请参阅的帖子。

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

取决于生命周期或预期用途。然而,这包括发育寿命。我最近给一个向量命名为“东西”,因为它只用于实验


如果一个变量只是在它的用法旁边声明或定义的,那么我就不必为它的表达性名称费心了。如果不是,我会选择一个中等长度的名字。我永远无法理解为什么人们会使用超过10个字符的名字。对于给定的问题,我会选择像enames这样的东西。

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

int num = text.scan(SEARCH_ENGINE_NAME).size();
表达式的右边越明显,我选择的名称就越短。合理的做法是,我们可能在4-5行的有限范围内,因此可以假设读者将能够在短名称和右侧表达式之间建立连接。但是,如果它是类的字段,我宁愿尽可能详细。

参见类似内容

关键是降低复杂性。应命名变量以降低复杂性。有时这会导致较短的名称,有时会导致较长的名称。它通常对应于维护人员理解代码复杂性的困难程度

在频谱的一端,有for循环迭代器和索引。它们可以有i或j这样的名字,因为它们非常普通和简单。给他们起更长的名字只会引起更多的混乱

如果经常使用一个变量,但它代表的是更复杂的东西,那么您必须给它一个明确的名称,这样用户就不必每次使用它时都重新了解它的含义


在光谱的另一端是很少使用的变量。在这里,您仍然希望减少混淆,但给它起一个简短的名字就不那么重要了,因为重新学习变量用途的惩罚并不经常发生。

在考虑代码时,请尝试从其他人的角度来看待它。这不仅有助于选择名称,而且有助于保持代码作为一个整体的可读性

使用很长的变量名会使代码的可读性变得混乱,因此您希望避免使用这些变量名。但另一方面,你要避免使用超短的名字或首字母缩略词,如“n”或“ne”。这样的短而神秘的名字会让试图阅读你的代码的人毛骨悚然。通常一到两个字母的变量用于小任务,例如在for循环中递增

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

我将其命名为“搜索引擎计数”,因为它包含搜索引擎计数。

使用Esc+
\u
+Esc编写:

this_is_a_long_variable = 42

Esc+
.
+Esc和
.
在Mathematica中不是相同的字符。这就是为什么允许使用前者,但不能使用后者。

我不同意,这当然取决于函数,但变量仍应具有足够的描述性,以表达其含义。如果它只是一个三行函数,并且n被设置为engines。在第一行进行计数,那么意义是显而易见的。但随着函数的增长,n的用法可能会越来越远离它的初始化方式,因此名称的意义就越来越小。一般来说,我认为1和2个字符的名称应该完全保留给短时间的一次性变量,如循环变量和lambda参数。@Anthony随着函数的增长,它应该重构为较短的函数。我不是说函数stretc