写注释是一个程序员必备的技能,到底什么地方该加注释?哪些地方不该加?如何写好注释?这些都是我们作为程序员需要知道的一些知识。
一、注释不能美化糟糕的代码
写注释的常见动机之一是糟糕的代码的存在,我们编写一个模块,发现它令人困扰、乱七八糟。我们告诉自己:“芭比Q了,最好还是写个注释吧,不然别人看不懂”。真的是这样的吗?不!最好是将代码弄干净!带有少量注释的整洁而有表达力的代码,要比带有大量注释的零碎而复杂的代码像样得多。与其花时间编写解释你写出的糟糕代码,还不如花时间清理那些糟糕的代码。
二、去除多余的注释
下面这个函数,试着读一下:
// Utility method that returns when this closed is true. Throws an exception
// If the timeout is reached
public synchronized void waitForClose(final long timeoutMillis)
throws Exception
{
if (!close)
{
wait(timeoutMillis);
if(!close)
{
throw new Exception ("MockResponseSender could not be closed");
}
}
}
你会发现读这个注释花的时间比读代码花得时间还要长, 这段代码起了一个什么样的作用呢?它并不能很好地说明这个函数,也没有给出代码的意图或逻辑,读它并不比读代码容易。可能你当时写注释的时候初衷是好的,但是这样的注释写出来会有点误导人,在this.closed变为true的时候,方法并没有返回,方法只有在判断到this.closed为true的时候才返回,否则就超时,然后如果判断this.closed还是非true,就抛出一个异常。这令其他开发者调试的时候会十分苦恼。
网友评论