Coding style 我应该在何时向代码中添加注释? 当我写的时候 在我完成一个部分后(单个类/函数/if-else) 在我把整件事都搞定之后 这是一个风格问题。就我个人而言,我喜欢在编码过程中写评论,而不是在编码之后。因为我把它留给以后,我通常会变得懒惰,根本不写它们。这就是说,有时检查一段完整的代码,找出代码本身不明显的地方并记录下来是很有用的。尤其是假设的部分。

Coding style 我应该在何时向代码中添加注释? 当我写的时候 在我完成一个部分后(单个类/函数/if-else) 在我把整件事都搞定之后 这是一个风格问题。就我个人而言,我喜欢在编码过程中写评论,而不是在编码之后。因为我把它留给以后,我通常会变得懒惰,根本不写它们。这就是说,有时检查一段完整的代码,找出代码本身不明显的地方并记录下来是很有用的。尤其是假设的部分。,coding-style,comments,Coding Style,Comments,您不应该“添加”注释-它们不是添加。注释是代码的一部分-需要时可以使用它们。询问何时应该添加它们就像询问何时应该添加函数或类一样。虽然考虑过这个问题,但我记得在我工作的大学里做过一个程序建议槽,其中一个学生带着大约1000行Pascal,没有任何函数。当我问他为什么没有使用函数时,他的回答是“我会在以后添加它们,一旦它工作起来。”这是主观的,但有时最好在实际代码之前添加它们,例如,当你实现一个有明确定义步骤的算法时。这样一来,你就更难错过步骤了。评论应该反映出你为什么用这种方式做事,而不是它做了

您不应该“添加”注释-它们不是添加。注释是代码的一部分-需要时可以使用它们。询问何时应该添加它们就像询问何时应该添加函数或类一样。虽然考虑过这个问题,但我记得在我工作的大学里做过一个程序建议槽,其中一个学生带着大约1000行Pascal,没有任何函数。当我问他为什么没有使用函数时,他的回答是“我会在以后添加它们,一旦它工作起来。”

这是主观的,但有时最好在实际代码之前添加它们,例如,当你实现一个有明确定义步骤的算法时。这样一来,你就更难错过步骤了。

评论应该反映出你为什么用这种方式做事,而不是它做了什么。大多数情况下,阅读代码的人可以阅读代码的功能


你应该解释你不能从代码中减少的东西。

我在编写任何不容易理解的代码时都会添加注释。我发现如果我不马上做,它就会被忘记。然后,我(或者更可能是其他人)花更多的时间思考我做了什么,而不是写评论


更准确地说,在编写代码后立即进行注释是确保注释真正被编写的最佳途径。

我倾向于在编写过程中添加基本注释,只是为了提醒自己在编写时的想法(即为什么这样编写)。我会这样做,特别是当代码看起来可能是错误的,但实际上是正确的,或者代码具有我不关心的固有竞争条件,或者代码可能不是最佳的,但可以快速让某些东西工作,因此,即使十分钟后,当我回去看它的时候,我可以看到我已经考虑过这个问题了,不必在这个问题上浪费任何大脑周期

当代码更完整时,我会经常回顾我写的评论,然后思考我是否仍然认为所做的决定是合理的,以及事情是否可以做得更好。我还经常将基本注释扩展为更长的注释,以便其他人在维护代码时更有用;我通常会将注释扩展保存到最后,因为很多时候基本注释在重构过程中被删除,所以写长注释是浪费时间,直到你知道你要保留它为止

简而言之,在编写过程中编写基本注释,然后在代码变得更稳定时对其进行改进


哦,还有,任何时候你检查一点现有的代码,你会被WTF击中?!当你意识到这段代码实际上是不错的时候,在你自己和下一个人将来看到它的时候,放上一条注释,这样可以节省你自己和下一个人的时间。

我建议你在编辑任何代码时都写注释。根据Robert C.Martin的说法,注释的一个缺点是代码可以在不更新注释的情况下更改,这使得注释不仅无用,而且危险。为了减少这个问题,如果您必须使用注释(因为您无法在代码中表达自己),请确保每次更新代码时都更新注释。

以后添加注释的一个缺点是,由于懒散、其他任务等原因,很多时候根本无法完成注释


如果您发现您可以随时返回并添加适当的注释而不会出现任何问题,那么一定要这样做,但在编写代码时或在编写部分代码之前,有意识地添加注释可能是确保代码未注释的一种方法。

将注释放在程序员阅读代码的任何地方,可能会产生WTF力矩


如果你发现自己在评论每一行,也许你需要看看如何用更简单、更优雅的语句来改进你的代码。

问题应该是,我什么时候在评论中添加代码

我的实践是将模块/对象/函数的功能写为一系列注释。不是像“添加一个到计数器”这样的评论。更高级别的评论,如 “按帐号对列表进行排序”。详细的注释对于代码来说几乎是多余的。因此,除非我正在编写一个非常复杂的算法,否则我会避免这些。 一旦我在注释中“设计”了功能,我就会像一个人工编译器一样工作 在每行注释后添加代码


试试看,让我们知道它是如何工作的

就我个人而言,我倾向于在必要时写评论来总结代码——通常在我写代码之前,以及为了保存WTF。我非常准确地将它们视为要做的事情的笔记,我已经这样做过的事情,或者将要这样做的事情,因此,它们在我觉得需要它们的时候和地点被放进去。

在您忘记需要实现什么样的规范和设计代码之前。 在你忘记一些不幸的程序员以后会读它之前。
在你忘记不幸的编码者很可能就是你之前。

当你在写一些非琐碎的事情时。

简短的回答

简单的回答是,任何时候,某个东西相对于谁将阅读它来说都是不明显的。如果它的代码仍在不断变化,因此您是唯一的消费者,那么只需为您提供评论(数小时和数天)。准备好让其他人试用-为您和您的团队提供评论(几天、几周,可能几个月)。
public string getCurrentUserName() {
    //init user database repository


    //retrieve logged in user


    //return name if a user is logged in, otherwise return null

}