你喜欢你的意见吗? [关闭](How do you like your comments? [c

2019-06-27 13:57发布

什么是评论您的最佳实践? 何时应该使用的,他们应该包含什么? 或者,即使评论需要?

Answer 1:

评论功能是必不可少的可维护性。 要记住的最重要的一点是要解释为什么你正在做的事情,你正在做的不算什么



Answer 2:

在学校里,规则是发表评论的一切,以至于评论超过代码。 我认为这是愚蠢的。

我认为,意见应用来记录“为什么”背后的代码,而不是“如何” ...的本身解释码“怎么做”。 如果有,是不是,为什么它是做真正明确的操作,这对一个评论的好地方。

TODO的和FIXME的有时去评论,但最好应在源代码管理和缺陷跟踪工具去。

在那里我不介意看似无用的评论有一个例外是文档生成器,将只适用于评价功能打印文档 - 在这种情况下,每一个公共类和API接口需要进行评论,至少足以让文档产生。



Answer 3:

理想的情况是你的程序可以在代码,而不是在评论读者沟通。 的能力,编写的软件,其他程序员可以快速了解分离的平均最优秀的程序员在我看来。 通常,如果您或您的同事无法理解的代码,而无需注释的部分,比这是一个“代码味道”和重构应该是为了。 然而,将一些过时的库或其他集成这几点意见,指导普通开发者不一定是坏事。



Answer 4:

由于经常的答案是:这取决于。 我觉得你写评论的原因是决策非常重要,如果注释是好还是坏。 有征求意见的多个可能原因:

  • 使结构更清晰(即,循环在这里闭幕)

坏:这看起来像一个可能的代码味道。 为什么代码如此复杂,它需要一个注释,以清除呢?

  • 说明一下,这段代码的功能

非常糟糕:这是在我看来危险。 通常它会发生,你以后更改代码,忘了评论。 现在的评论是错误的。 这真是太糟了。

  • 以指示一个解决办法/一个错误修正

好:有时一个问题的解决方案似乎很清楚,但简单的方法有问题。 如果你解决这个问题,它可能有助于添加评论,为什么选择这种方法。 否则,另一个程序员以后能想到,他“最优化”的代码,并重新引入的bug。 想想是Debian的OpenSSL问题。 Debian的开发人员卸下了未初始化变量。 正常情况下,未初始化变量是一个问题,在这种情况下它被需要的随机性。 一个代码注释将有助于清除了。

  • 对于文件的宗旨

好:有些文档可从特殊格式的注释(即的Javadoc)来生成。 这是有帮助的文档公共API,这是一个必须具备的。 重要的是要记住,该文件包含代码的意图,而不是实现。 所以回答评论“为什么你需要的方法(和你如何使用它)”或者是什么方法的问题?



Answer 5:

我认为新的运动删除评论是坏...的原因,也有不少认为他们正在编写易于理解代码不需要评论程序员。 但在现实中它只是并非如此。

做什么的其他民族的代码百分比阅读并立即理解它..也许我读了太多经典的ASP,Perl和C ++,但大多数的东西,我读的是棘手的脱脂。

你有没有读别人的代码,并通过它成为完全混淆。 你认为他们想,而他们正在写,这是废话,但我真的不关心。 他们大概以为喔......这是非常聪明的,这将是超级快。



Answer 6:

只是一些言论:

评论功能是无法从代码(例如复杂的数学算法)可以容易地推断出所有重要资料。

有意见的问题是,他们需要保持一样的代码,但往往不能维持的。

我不喜欢这样的评论:

// Create the "Analyze" button
Button analyzeButton = new Button();
analyzeButton.Text = "Analyze";
analyzeButton.Location = new Point( 100, 100 );
Controls.Add( analyzeButton );

更好:

CreateAnalyzeButton();


void CreateAnalyzeButton()
{
    Button analyzeButton = new Button();
    analyzeButton.Text = "Analyze";
    analyzeButton.Location = new Point( 100, 100 );
    Controls.Add( analyzeButton );
}

现在代码道出了原委。 无需注释。



Answer 7:

我认为这取决于具体的方案。

方法/功能/类需要他们做什么的简短说明,他们是如何做到这一点,他们需要和他们返回什么,如果不立即明显,通常(在我的代码)是在一个javadoc样式的注释块的形式。

在块的代码,我倾向于留行块以上评论,说明它做什么,或者一个在一行结束时,如果它是一个短期和神秘的函数调用。



Answer 8:

使用标签搜索,你会发现SO约为代码的注释已经讨论堆:

https://stackoverflow.com/questions/tagged/comments

注释代码



Answer 9:

看看代码完成 。 它只是最适合这样的主题。



文章来源: How do you like your comments? [closed]
标签: comments