小编典典

什么是自记录代码,它可以取代有良好记录的代码吗?

all

我有一位同事坚持认为他的代码不需要注释,这是“自我记录”。

我查看了他的代码,虽然它比我见过的其他人编写的代码更清晰,但我仍然不同意自文档代码与注释和文档代码一样完整和有用。

帮助我理解 的观点。

  • 什么是自记录代码
  • 它真的可以取代注释良好和记录良好的代码吗
  • 是否存在比有据可查和注释的代码更好的情况
  • 有没有代码不可能在没有注释的情况下自我记录的例子

也许这只是我自己的局限性,但我不明白它怎么能是一个好的做法。

这并不是要争论 - 请不要提出为什么注释良好和记录良好的代码是高优先级的原因 -
有很多资源表明这一点,但它们对我的同行并没有说服力。我相信我需要更充分地理解他的观点才能说服他。如果必须,请提出一个新问题,但不要在这里争论。

另外,那些反对自我记录代码的人——这主要是为了帮助我理解自我记录代码传播者的观点(即积极方面)。


阅读 79

收藏
2022-05-17

共1个答案

小编典典

在我看来,任何代码都应该是自记录的。在良好的、自记录的代码中,您不必解释每一行,因为每个标识符(变量、方法、类)都有一个清晰的 语义
名称。有多余的评论实际上会使阅读代码变得更加困难(!),所以如果你的同事

  • 为每个类、成员、类型和方法编写文档注释(Doxygen、JavaDoc、XML 注释等)和
  • 清楚地注释代码中不是 自记录的任何部分,并且
  • 为解释意图的每个代码块编写注释,或者代码在更高的抽象级别上做了什么(即 查找所有大于 10 MB 的文件,而不是 循环遍历目录中的所有文件,测试文件大小是否大于 10 MB,如果为真则返回

在我看来,他的代码和文档很好。请注意,自我记录的代码并不 意味着
不应该有注释,而只是说不应该有不必要的注释。然而,问题是,通过阅读代码(包括注释和文档注释)应该可以立即理解代码的作用和原因。如果“自我记录”代码比注释代码需要更长的时间来理解,那么它并不是真正的自我记录。

2022-05-17