正在进行一场小型辩论,我会在代码中研究评论的功效。其中一位负责人指示他的开发人员不要使用评论,因为他们过于“老式”,而其他几位开发人员表示他们从不使用评论,因为他们觉得他们所做的一切都使代码混乱。
我一直非常坚持使用基本注释块对每个文件的顶部进行注释,对每个方法/类/ etc定义进行注释,然后我在代码中的任何地方进行注释,我认为我可能会来在6个月后回想起“WTF”。
显然这是主观的,但我很想知道是否有人对这种或那种方式有任何非常好的论据或经验。
答案 0 :(得分:23)
这已被讨论过死亡。
我只会指出你Jeff Atwood's wonderful post on the subject,它会钉在头上。
答案 1 :(得分:19)
在我的整个职业生涯中,我从未遇到过那种美妙的野兽“自我记录的代码”。也许我只是不走运,但我开始怀疑它实际上并不存在。
答案 2 :(得分:9)
每隔一段时间我就会遇到如此优雅的分区代码,有一个非常明显的方法,字段和变量名称,我需要知道的一切都是从代码中可以看出的。
在一般情况下,只有非常棒的代码专家才会编写这样的代码。我们其余的人凑齐了一些有效的东西。
答案 3 :(得分:6)
“其中一位负责人指示他的开发人员不要使用评论,因为他们过于”过时“,而其他几位开发人员表示他们从不使用评论,因为他们觉得他们所做的一切都使代码混乱。” / p>
如果我听过一位开发人员,我正在处理这样的谈话,我会纠正他们。如果我没有必要的等级来纠正它们,我会离开这份工作。
非常清晰的代码,具有良好的标识符 - 有时被称为“自我记录”的东西 - 可以很好地说明代码正在做什么。就目前而言,这很好。评论的工作是解释为什么。
答案 4 :(得分:3)
评论的问题是,在评论的代码发生变化甚至被删除后,它们往往会持续很长时间。
根据经验,我只评论公共API和难以理解的算法。
不要使用注释来解释你做了什么 - 这就是代码的用途,使用注释来解释你为什么这么做。
答案 5 :(得分:3)
这个主题往往会被讨论很多,但这里的主题是我的0.02美元:
答案 6 :(得分:1)
Diomidis Spinellis刚刚为IEEE专栏(quoted on his blog)写了一篇很好的专栏,概述了这个问题,并提出了一些解决方案:
评论时,我们总是一对 远离灾难的按键: 重述代码的功能 英语。这就是问题所在 启动。
答案 7 :(得分:0)
应该在代码之前或函数之前写注释,以便下次查看函数时,他/她可以立即知道该代码的用途是什么。
我多次发生这样的事情,我编写代码然后忘记了它的目的。所以,我习惯在代码之前写评论。
答案 8 :(得分:0)
我希望在评论中看到的是解释为什么一个明显且比代码中使用的方法简单得多的方法不起作用。