8

在我的一个项目上运行 Sonar 后,我因“尾随评论”而受到违反。所以我想知道,这纯粹与 Java 接受/推荐的代码布局约定有关,还是“更多”?背后的原因是什么?当我查看一些 C++ 代码(最近的Doom 代码审查)时,有大量(或装满)尾随注释。

4

3 回答 3

16

出自名著Code Complete

  • 注释必须对齐,以免干扰代码的视觉结构。如果您不整齐地对齐它们,它们会使您的列表看起来像是通过洗衣机清洗过的。

  • Endline 注释往往难以格式化。对齐它们需要时间。这些时间并没有花在更多地了解代码上;它专门用于按空格键或制表键的繁琐任务。

  • Endline 注释也很难维护。如果包含尾行注释的任何行上的代码增长,它会将注释撞得更远,并且所有其他行尾注释都必须撞出以匹配。难以维护的样式不会被维护。

  • Endline 评论也往往是神秘的。行的右侧没有提供太多空间,并且希望将注释保留在一行上意味着注释必须很短。然后工作是使线路尽可能短,而不是尽可能清晰。该评论通常以尽可能神秘的形式结束。

  • 行尾注释的一个系统性问题是很难为一行代码编写有意义的注释。大多数行尾注释只是重复代码行,这弊大于利。

话虽如此,这也与一个人对编码风格的选择有关。我个人会避免尾随评论,因为它们没有太大帮助。

于 2013-01-17T18:21:41.403 回答
5

仅仅因为某些东西尾随评论并不意味着它们是好的。还要记住 Doom 3 的代码已经有 10 年的历史了,并且编码风格会随着时间而改变。

通常,尾随注释表明一行代码不能独立存在。而且,一般来说,这是一种代码味道,因为单行代码应该是相当透明的。

查看一些源代码,我实际上并没有看到大量的尾随评论,尽管我看到很多方法太长,并且在函数中间有很多评论。

这些通常表明以下代码值得拥有自己的方法。

我认为是的,还有更多,“更多”是沟通和清晰。

于 2013-01-17T18:21:24.753 回答
4

尾随评论本身并没有什么坏处。但是,您应该尽可能清楚地编写代码,这样您就不必使用注释逐行解释您的代码。这就是为什么有些人认为尾随代码注释暗示代码不够理解。

有关这方面的更多信息,另请参阅Java 样式指南。

于 2013-01-17T18:17:09.227 回答