千万别给代码加糟糕的注释,会适得其反

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

首先,注释再好也拯救不了糟糕的代码,还是好好的先认真的写代码吧。

我们平时写代码的时候肯定会写一大堆的注释,方便自己也方便接手的新同事。
现在工作接手的代码质量还不错,根据方法的作用猜一猜方法名或直接搜注释一般都可以快速找到对应方法在哪。
殊不知之前代码,一个风控系统,十个校验,verify1,verify2...verify10,注释就俩字:校验,就看懂方法干了个啥都要被搞疯掉。

下边我们一起看看好的注释渣渣注释都有啥吧,看你是不是中招了。

好的注释

提供信息的注释

注释在方法名上说明这个方法的作用是常见的注释方法,特别是当方法名不是很明显的时候。

//获得商品的属性
public void getInstance(){
    ...
}
复制代码

对意图的解释

当出现hardcode的时候,解释为什么会这样做

public void test1(){
    List<String> str = new ArrayList<>();
    //将list以10个一组组成新的list,便于多线程执行
    List<List<String>> partition = Lists.partition(str, 10);
}
复制代码

阐释

将晦涩难懂的代码解释一下,会让读代码的人看起来更为轻松

public void test2(){
    assertTrue(a.compareTo(b) == 0);//a=b
    assertTrue(a.compareTo(b) != 0);//a!=b
    assertTrue(a.compareTo(b) == -1);//a<b
    assertTrue(a.compareTo(b) == 1);//a>b
}
复制代码

警示

昨天在RocketMQ源码看到了这样一行注释,大致意思是不要手动的去设置这个值,它会自动设定。

// Do not set it manually, it depends on the startup mode
// Broker start by BrokerStartup is false, start or add by BrokerContainer is true
private boolean isInBrokerContainer = false;
复制代码

TODO注释

TODO一般标注需要做但还没做的逻辑,主要是怕忘记,作为提醒

public void test2(){
    //TODO
    //这个方法在进入二期之后,需要添加新的校验
}
复制代码

渣渣注释

有好的那就肯定有坏的,

喃喃自语的注释

哈哈,感受到了一个后端程序员在改了一天的bug之后的无奈,但还是别这么做。

//报了很多错,所以就加了这么多校验
public void test3(){
    verify1();
    verify2();
    verify3();
    verify4();
    verify5();
}
复制代码

多余的注释

这不是瞧不起后来的哥们,简直实在侮辱后来的哥们。写个汉字也比这抄一遍强的多。

//name
private String name;
//id
private Long Id;
//address
private String address;
复制代码

误导性注释

很多时候,写的不够精确的注释会误导后来的同学,对于下边的代码,可能会有同学绞尽脑汁寻找是否满足出货需求的逻辑咋实现的,没看着啊。

//校验商品库存是否满足出货需求
public void test4(){
    //内部方法其实只计算了库存
}
复制代码

日志式注释

有的哥们每次修改一段代码的时候,都要在方法头留一段注释说明自己要干啥了。就像是每次修改的日志。时间久了,就灰常长。还不如提交代码的时候comments写详细点。

// 2022年5月6日 添加对于时间的校验
// 2022年7月19日 添加返回新的参数
// 2022年8月12日 修改bug
public void test5(){
    ...
}
复制代码

废话式注释

这个真滴没必要,用中文还好,但是如果是英文注释的话,是不是和方法名一样了,哈哈。

//获取月份中的天数
public Long getDayOfMonth(){
    return ...;
}
复制代码

标注作者

git等版本管理工具会很好的管理作者信息,当一个类被后来的哥们改的千疮百孔的时候,这段注释显得多么的无力。

//add by Luke
public void test5(){
    ...
}
复制代码

注释掉的代码

这个是真的垃圾,没用了就删掉,看到别人注释的代码,一长段,不敢删,怕有用,又真的碍事。有不用的代码块了,需要注释掉,就直接删了。

注释别太多

注释一定要显而易见,别写了一篇小作文往那一挂。这种几乎没人看,还显得臃肿。

写好代码很重要,写好注释更重要,希望各位多多写有用的注释,没有bug,没有烦恼。

猜你喜欢

转载自juejin.im/post/7131002901975007262
今日推荐