it-swarm.cn

我应该指出某人代码中与拼写/语法相关的错误吗?

在查看同事的代码时,我遇到了函数名称中的一些拼写错误以及语法错误,例如doesUserHasPermission()而不是函数和变量名称中的doesUserHavePermission()

我应该向他指出这些,还是因为注意到这些而太学究了?

109
Rahul

带有拼写和语法错误的代码是不可维护的

  • 人们不会记得不好的语法,因此他们将尝试按应编写的方式调用该函数,这就是错误发生的方式。

  • 如果您不知道其拼写方式,则无法在代码中使用grep。

  • 大多数进行语法/拼写检查的人不一致,因此他们会引入很多名称不匹配的错误。在不需要在使用前明确声明变量的语言中,这尤其成问题,因为您可以引入新的拼写,并且您的代码也不会停顿不前,让您知道自己搞砸了。

纠正这些问题不是徒劳的,也不是主要由他人关于自己的才智,识字等的观点所必需的(尽管这是一个很大的副作用);这是关于编写质量,可维护的代码

210
HedgeMage

当然是。如果名称在语法上正确,则更容易记住该名称。试图记住名称and语法错误完全是另一回事。

39
Jason Baker

不要在正式的代码审查中指出它们是缺陷。而是标记一个列表,然后与他/她私下讨论。对此保持尽可能的外交态度,只是“嘿,我注意到的事情,我遇到了很多真正鄙视这种事情的人,他们认为这使程序员看起来粗心和草率。”

如果这是客户要查看的代码,则绝对必须更正。不管喜欢与否,它确实反映了您公司的声誉。

对于您给出的示例,我怀疑它以UserHasPermission开头,并且有人告诉他本地实践是dosUserBlahBlah()而不是UserBlahBlah(),而他只是忽略了语法更改。

28
John R. Strohm

自行更改。

希望您处在代码“所有权”不是问题的环境中。如果您可以在源代码管理中访问该项目,则只需自己修复即可。如果您看到某个特定的同事一致地犯相同类型的语法或拼写错误,则可能要指出这一点,但这取决于您的关系,此人是否是说英语的人以及他们的总体接受程度。但是,无论您是否决定这样做,只要安静地进行修复即可。我一直在这样做,如果我看到错字,尤其是在方法签名或公共属性中,我会解决它。有时我什至无法抗拒在评论中修正错字的诱惑,但这就是我自己:)

10
Marcie

我想在这里值得一提的是,HTTP协议中的HTTP Referrer标头被误称为“ referer”(并且我们必须使用它/我们已经学会了使用它。):)

6
Bunny Rabbit

我是一个开发人员,其母语不是英语,实际上是荷兰语,并且根本不介意有人指出我语法或拼写错误。这样,我可以不断提高我的英语水平。纠正所有源代码中的所有错误当然并不难。可以轻松编写一个简单的Perl脚本来遍历文件夹中的所有文件。也许甚至可以用sed完成?我不知道。

因此,我当然会指出其他人的代码中的语法或拼写错误,但前提是我绝对确定它是正确的。

6
user11317

我同意其他答案,即带有语法错误的代码是无法维护的。

我还想添加一些内容:

  • 代码通常是由不太会说英语和/或英语不是其母语的人编写的。如果您检查的代码中有语法错误,这并不意味着您的同事犯了此错误。也许只是网站上的复制粘贴。
  • 如果英语不是您同事的母语,则告诉她/他有关此错误的信息可能是一个好主意,也可能是一个很糟糕的主意。我来自法国,我总是欢迎对我用英语犯的错误发表评论,因为这是我将来避免这些错误的唯一方法。另一方面,我认识几个人,如果您将他们所犯的语法错误告诉他们,他们会感到非常受伤。
  • 就像约翰·R·斯特罗姆(John R. Strohm)所说的那样,切勿公开进行。大多数人会对此感到非常恼火。
4
Arseni Mourzenko

我建议使用带有内置拼写检查器的IDE。IntelliJ Idea对于Java程序。)表现出色。在函数名称中,但在例如异常消息中,用户可以看到;产生充满错别字的消息的程序并不能激发很大的信心。

2
Roman Zenka

这是代码中的一个小错误,但是是一个错误。像发现其他任何错误一样对待它。我的政策始终是假设我的同事有能力,并以这种方式对待他们,直到他们证明不是。

如果是单个错误,我可能会对其进行修复并检入。如果是一种模式,我可能会开始让该同事审查这些修复。让他们知道您认为他们是一个很好的编码器,但这将是值得改进的地方。不过,我认为我不会对此类事情大有作为。

只要您不把它当作一个大问题,就应该很容易地将这位同事放在一个可以改善而不需要自我约束的位置。

0
overstood

适用黄金法则

对他人做,就像您希望他人对您做的那样。

我希望其他人对这种事情有所支持,所以我会帮助其他人。仁慈和支持对您有利。

0
kevpie

与许多其他良好的编程习惯一样,在程序中实施拼写政策的唯一客观,非政治且有效的方法是,在预提交过程中将其自动化。即使您必须为此目的编写自己的工具,自动化也可以使您免于大量不满。

0
Apalala

我只有在

  • 它影响程序的使用
  • 它影响程序的准确性
  • 我明确知道作者希望得到纠正。

顺便提一句,如果您的函数名称足够长而无法使用语法,则它们可能太长。在给出的示例中,我将调用函数serHasPermission并将“语法”移至您的代码中,如下所示:

if userHasPermission() ...
0
Mark Harrison

这在我的项目中也发生过很多(由希伯来语,俄语或阿拉伯语为母语的人居住),但甚至达到了更高的水平-我经常看到代码使用一些晦涩的术语,而这些术语恰恰是字典翻译成的语言作者的想法,与他们的意思无关...

就个人而言,当它如此频繁地发生并且有如此多的团队成员甚至在我加入该项目之前就可能已经编写了代码时,我倾向于忽略它,因为这无关紧要。

但是,如果我将某些工作与很久以前编写的代码或注释放在同一个文件中,并且其中包含错别字,则我将更正它们,只是因为这不是太多工作。

0
Daniel Hershcovich