对Beta3的说法深表赞同!
我记得在哪本书上看到过一个“自注释代码”的概念,就是说,一段设计良好的代码,其逻辑可以非常清晰的阅读出来。
注释在一些情况下可以成为“万恶之源
”,比如:
1.注释中只是简单重复代码所作的操作(c=a+b;//把a和b的结果赋给c),我称其为“垃圾注释” :-(
2.修改过程中注释与代码不同步,一个错误或者过时的注释比没有注释还要来得糟糕的多,这种注释往往会误导读者,贻害无穷。
3.注释语言描述不清楚,一些程序员很难用自然语言来描述他们的意图,阅读的人理解起来还不如直接读高质量的代码来得清楚
4.自然语言的语种问题 :-( 且不提自然语言的理解,仅仅是字符集问题就已经够困扰的了,我曾经下载过其他语种的代码,注释往往和}结合起来,导致编译无法通过,只能一行一行的删除之。
当然,这并不是说我们不应该写注释,注释应该在下列情况下使用:
1.一个复杂的算法。这时穿插在代码行间的注释是非常有必要的(当然,不能是上述的第1类注释),往往需要搭配流程图
2.描述变量的作用。我想这是我们应该最常使用的注释之一
3.描述接口函数的作用和调用约定。尤其是后者!如果你的接口函数隐含了调用约定,那么一定要注释上。
4.帮助写的人和阅读的人理清思路。比如我进行复杂的画图等操作的时候往往先写注释,比如:
// 创建图象缓冲
// 画背景
// 画文字
// 画边框
// 实际画到画布
等,然后才去写对应的代码,这样思路要明确的多,即使这次没有写完,下次也很容易接着写。
5.特殊作用注释。比如// TODO: 注释,Delphi对其提供了特殊的支持。