在我的一个项目上运行Sonar后,我收到了“尾部注释”的违规通知。因此,我想知道,这是否纯粹与Java的接受/推荐代码布局约定有关,还是还有其他方面?背后的原因是什么?当我查看一些C++代码(最近的Doom代码审查时,有大量的尾随注释。
来自著名书籍《代码大全》:
注释必须对齐,以避免干扰代码的视觉结构。如果你不整齐地对齐它们,它们会让你的清单看起来像是经过洗衣机洗过一样。
行尾注释往往难以格式化。需要花费时间去对齐它们,但这些时间并没有用于了解代码的更多内容; 它们仅仅用于繁琐的按空格键或制表符键的任务。
行尾注释也很难维护。如果任何包含行尾注释的行上的代码增长了,它就会将注释弹出,并且所有其他行尾注释都必须移动以匹配。难以维护的风格是不会被维护的。
行尾注释也往往令人费解。右侧的空间很小,而且希望将注释保持在一行上意味着注释必须很短。然后要做的工作是使行尽可能短,而不是尽可能清晰。注释通常变得越来越令人费解。
行尾注释的一个系统问题是很难为一行代码编写有意义的注释。大多数行尾注释只是重复了这行代码,这会起到负面作用。
话虽如此,这也取决于个人选择编码风格。我个人会避免使用行尾注释,因为它们并没有太大的帮助。
尾部注释本身并不是什么坏事。但是,您应该尽可能清晰地编写代码,以便您不必使用注释逐行解释您的代码。这就是为什么有些人认为尾随代码注释是代码不够易懂的提示。
有关更多信息,请参见Java风格指南。