什么是可读代码?命名变量时要遵循的最佳实践是什么?

时间:2009-01-17 22:20:07

标签: naming-conventions variables

你认为x,y,z是好的变量名吗?你如何解释一个新程序员编写可读代码?

13 个答案:

答案 0 :(得分:4)

如前所述x,y和z是3D坐标的好变量,但可能对其他任何东西都不好......

如果有人不相信名称很重要,只需在某些代码上使用代码混淆器,然后让他们调试它: - )。

(顺便说一句,这是代码混淆器可能有用的唯一情况恕我直言)

答案 1 :(得分:4)

可读代码意味着注释和变量和函数命名的某种组合,允许我一次读取代码并理解它。如果我不得不多次阅读,或者花时间在复杂的循环或功能上工作,那么还有改进的余地。

文件和类顶部的良好摘要描述对于向读者提供上下文和背景信息非常有用。

明确的名字很重要。详细的名称使用更少的注释编写可读代码变得更加容易。

编写可读代码是一项需要一些时间学习的技能。我个人喜欢过于冗长的名字,因为他们创建了自我记录代码。

答案 2 :(得分:2)

每个编程语言的惯例似乎略有不同;然而,这些天的共识是......

  • 使用pascal case
  • 使名称有意义
  • 以名词结尾

以下是Microsoft发布的decent recap作为.NET的标准命名约定

python的发明者发布了一个style guide,其中包含命名约定。

有一段时间,Microsoft VC ++开发人员(包括我自己)实际上围绕着所谓的Hungarian Notation

答案 3 :(得分:0)

当然,对此有多种思想流派,但我只会将这些用于计数器,并为其他任何变量提供更具描述性的名称。

答案 4 :(得分:0)

x,y和z可以是非常好的变量名。例如,您可能正在编写引用3D笛卡尔坐标系引用它们的代码。这些名称通常用于这种系统中的三个轴,因此它们非常适合。

答案 5 :(得分:0)

我会给一些带有x,y,z变量的代码做一些维护工作,让他们自己意识到可读性至关重要......

95%的代码查看不是作者,而是由每个人忘记的客户 - 下一个程序员。你应该为她的生活轻松一点。

答案 6 :(得分:0)

好的变量名称可以准确描述它们的含义,而不会过于复杂。我总是使用描述性名称,即使是在循环中(例如,index而不是i)。它有助于跟踪正在发生的事情,特别是当我正在重写一段特别复杂的代码时。

答案 7 :(得分:0)

好吧给他们一大堆不好的代码并要求他们调试它 请使用以下代码(简单示例)

<?php $a = fopen('/path/to/file.ext', 'w');$b = "NEW LINE\n";fwrite($a, $b);fclose($a);?>

错误是:文件应该是一个日志,只包含1行 问题:fopen中的'w'应该是'a'

这显然是一个非常简单的例子,如果你想给他们一个更大更复杂的例子给他们WMD source并要求他们在2小时内给你可读的代码,它会得到你的观点。< / p>

答案 8 :(得分:0)

x,y和z是可接受的变量名称,如果它们代表3d坐标,或者它们用于迭代2或3维数组。

就我而言,这段代码很好:

for(int x = 0; x < xsize ; x++)
{
  for(int y = 0; y < ysize ; y++)
  {
    for(int z = 0; z < zsize ; z++)
    {
      DoSomething(data[x][y][z]);
...

答案 9 :(得分:0)

只要x,y和z是(3D)笛卡尔坐标,那么它们就是伟大的名字。

类似地,i,j和k对于循环变量是可以的。

在所有情况下,变量名称应与数据相关

答案 10 :(得分:0)

这是一个简短的答案,但对我来说效果很好:

如果 需要代码注释来描述它,那么重新考虑变量名称。

所以如果很明显,为什么选择“x”,那么它们就是好名字。例如。 “i”作为循环中的变量名称(通常)非常明显。

答案 11 :(得分:0)

理想的变量名称既短(使代码更紧凑)和描述(以帮助理解代码)。

关于两者中哪一个更为重要的意见不同。就个人而言,我会说这取决于变量的范围。仅在3行循环内使用的变量可以通过单个字母来消除。 500线类中的类字段最好是描述性的。 Spartan Programming哲学认为,所有代码单元应尽可能小,以便变量名称可以非常短。

答案 12 :(得分:0)

可读代码和良好的命名约定不是一回事!

变量的一个好名称是允许您理解(或合理地猜测)变量的目的和类型而不会看到使用它的上下文的名称。因此,“x”“y”和“z”表示坐标,因为这是一个合理的猜测。相反,一个糟糕的名字会导致你猜错。例如,如果“x”“y”和“z”代表人。

功能的一个好名称是传达您需要了解的所有内容而无需查阅其文档的名称。这并不总是可行的。

可读代码首先是代码,即使您对所有变量和函数名称进行了混淆,也可以理解其结构。如果你这样做并且无法轻易找出控制结构,那你就搞砸了。

一旦你有可读的代码和良好的命名,那么也许你将拥有真正可读的代码。