每一个软件开发者都跟代码是好朋友。首先代码应该尽量地简洁,尽可能地做到不需要依赖注释就可以理解。但是有些代码段难于理解,则需要我们添加注释。
有一本非常经典的书《Structure and Interprettion of Computer Programs》(《电脑程序的结构和编译》),在序言中表明观点:
Knuth在其发表的经典论文《Literate Programming》(《文学编程》)中秉持类似的观点:
如果你写出来的代码,既能被其他程序员理解又能成功编译,那么需要添加注释的地方肯定句不会很多。关于使用注释作为辅助工具,下面看一个例子:
上面的代码等同于下面的代码,但是下面的代码可读性更高。
需注意的是,注释的越多并不意味着代码的理解性更强。有时候,注释得越精简代码的可读性也越高。
无论最后你呈现的代码是有多么的简洁和清楚,代码也不可能完全自文档化。但是代码永远也不可能取缔注释的存在。正如Jef Raskin所说:[代码]无法解释如此写程序及选择该方法的原因。从[代码]上我们也看不出选择某些替代方法的理由。例如:
在A开发人员看来完全显而易见的东西,可能在B眼里完全就像雾里看花一样。所以我们在写注释的时候,也要考虑到这一点!
归根究底,代码只会告诉你程序是如何工作的,但是注释则能说明工作的原因。