Sonar,Java和“尾随注释”违规

8
在我的一个项目上运行Sonar后,我收到了“尾部注释”的违规通知。因此,我想知道,这是否纯粹与Java的接受/推荐代码布局约定有关,还是还有其他方面?背后的原因是什么?当我查看一些C++代码(最近的Doom代码审查时,有大量的尾随注释。

3
http://www.cwu.edu/~gellenbe/javastyle/trailing.html - Robert Harvey
3个回答

17

来自著名书籍《代码大全》:

  • 注释必须对齐,以避免干扰代码的视觉结构。如果你不整齐地对齐它们,它们会让你的清单看起来像是经过洗衣机洗过一样。

  • 行尾注释往往难以格式化。需要花费时间去对齐它们,但这些时间并没有用于了解代码的更多内容; 它们仅仅用于繁琐的按空格键或制表符键的任务。

  • 行尾注释也很难维护。如果任何包含行尾注释的行上的代码增长了,它就会将注释弹出,并且所有其他行尾注释都必须移动以匹配。难以维护的风格是不会被维护的。

  • 行尾注释也往往令人费解。右侧的空间很小,而且希望将注释保持在一行上意味着注释必须很短。然后要做的工作是使行尽可能短,而不是尽可能清晰。注释通常变得越来越令人费解。

  • 行尾注释的一个系统问题是很难为一行代码编写有意义的注释。大多数行尾注释只是重复了这行代码,这会起到负面作用。

话虽如此,这也取决于个人选择编码风格。我个人会避免使用行尾注释,因为它们并没有太大的帮助。


你的意思是这本书需要被阅读,至少要看一下吗?!我原以为只要它放在书架上,靠近我的心灵就足够了。 - vector
2
@vector 我赞同渗透作为一种教育技术。 - Dave Newton

5
仅仅因为一些代码有尾部注释并不意味着它们是好的。还要记住,毁灭战士3的代码已经有大约10年的历史了,而编码风格随着时间的推移而改变。
通常,尾部注释表示一行代码无法独立存在。总的来说,这是一种代码异味,因为单行代码应该相当透明。
浏览一些源代码,我实际上并没有看到很多尾部注释,但我看到了很多过长的方法和很多在函数中间的注释。
这些通常表明以下代码应该有自己的方法。
我认为是的,其中更重要的是沟通和清晰度。

4

尾部注释本身并不是什么坏事。但是,您应该尽可能清晰地编写代码,以便您不必使用注释逐行解释您的代码。这就是为什么有些人认为尾随代码注释是代码不够易懂的提示。

有关更多信息,请参见Java风格指南


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接