最好的注释就是代码。

如果代码清晰明了,变量/函数命名恰到好处,函数短小精悍,使读者一目了然。那么任何注释都是多余的。

注释是一种失败,是在弥补在代码表达意图时遭遇的失败。 第一次读这话,感觉不可思议。之前一直以为注释是为了解释一些代码的逻辑,尤其是很长一段代码,如果一行注释都不添加,让读者很难有兴趣读下去的。可是现在仔细看来,还真是这个道理,如果代码清晰明了,读者一目了然,还需要注释吗。写注释的常见动机就是有糟糕代码的存在。

与其花时间编写搞错的糟糕代码的注释,不如花时间清洁那堆糟糕的代码。从根源上解决问题。

很多时候,简单到只需要创建一个描述与注释同一事物的函数即可,或者让参数和返回值自身足够清楚。这样就可以省略掉注释了。

唯一真正好的注释就是想办法不去写注释。无招胜有招。

可是往往在我们接手的项目中,已经有了一部分注释,所以我们需要删掉毫无用处甚至是反作用的注释。

  • 删除不必要的TODO。需要TODO的,就赶紧补上,它不是系统中留下糟糕代码的接口
  • 喃喃自语。这些注释和代码没任何关系,可能就是当时人的一句自言自语。像这种注释,毫不犹豫,里面干掉。
  • 多余的注释,既然是多余的,那就直接删
  • 误导性的注释。这种更应该删掉,比多余的,毫无用处的注释更可怕。
  • 循轨式注释。例如给每个变量或者函数添加的注释,这类注释突然让代码变得散乱,满口胡言,令人迷惑不解
  • 日志式的注释。现在有各种版本管理工具,日志式的完全没必要。
  • 废话注释 能用函数或变量时就别用注释
  • 位置标记,例如在代码中添加 /////////////
  • 括号后面的注释。凡是发现自己想标记右括号,那就是表明函数太长了,该缩短了
  • 注释掉的代码,这部分更不应该留着,版本管理工具可以很好的帮忙保存,删了也丢不了的。
  • 信息过多。过多就说明废话太多。删。
  • 不明显的联系,那和废话也差不多,删。
  • 函数头,短函数不需要太多的描述,为只做一件事的短函数选一个好名字,通常要比写函数头注释要好
  • 非公共代码的javadoc。不是公共代码,没必要写javadoc的。好的函数名即可

搬运地址:

代码整洁之道