在理论上,写代码注释听上去非常有价值:给读者提供足够详细的信息,对程序进行解释。但在实践中,注释常常会变得有害。跟其他任何内容的写作一样,写出好的注释也需要一定的技巧。其中很多技巧是知道什么时候不该写。
当代码语法错误时,编译器,连接器等会及时发现,如果代码是某些功能不正确,代码审查,静态代码分析,单体测试以及日复一日的使用中也能发现。但如果注释不当,很难及时纠正。如果注释不当它的价值为零甚至是负值。
如果注释本身没有技术上的错误,但对理解代码没有价值呢?这些注释即是噪音。仅仅是模仿代码的注释对读者没有任何额外的帮助。还有注释掉的代码不是可执行代码,所以对程序执行和读者阅读都没有帮助,它很快就变得腐化。跟版本相关的代码可通过版本控制工具找回。
一段无价值或错误的注释会让程序员倾向于忽略所有的注释,如折叠注释,编写脚本过滤掉所有注释等。为了减少忽略有价值注释的风险,注释应当被和写代码一样对待。每段注释应该能给读者带来额外的价值,否则就不该存在。
小结
注释应当能表达出代码未写出或不能表达出的内容