从注释说起...

 

不爱写注释应该是程序员的通病,所以不要为不写注释或写不好注释而感到羞愧。

那为什么项目总是要求我们要写注释,并且有些项目还需要有一定的注释率呢,可能有以下几点原因:

  1. 应付检查:记得刚毕业做过的岛国项目要求注释和代码比率是1:1,满屏看上去都是绿色的注释。作为上线前一项检查的硬指标,不达标是不能上线的。
  2. 更容易理解:这应该是注释的初衷,通过容易理解的注释能够帮助我们理解代码的意图。
  3. 防止自己忘记:其实这点和第二点差不多,我们经常连一周前自己写的代码都不认识了,写个注释可能帮助我们回忆。

既然注释有很多的好处,那我们为什么不爱写注释呢。原因也很简单,因为代码变化的太频繁了。试想一下,需求的变化、bug的修复、代码的重构,每次代码变更我们都要关注一下注释是否正确,注释俨然成为了程序员的又一份文档,而程序员更不爱写文档。

那有没有什么办法来改进程序的可读性呢,可以从以下几个角度进行考虑:

  •     规范的命名(包括变量、方法、类...)
  •     短小的方法
  •     简洁的类

规范的命名

       变量的命名:使用有意义的名称来命名变量, name比x要好,而userName比name要好,名称歧义性越小越好(user和userInfo就容易产生混淆)。

       方法的命名:使用动词或动词短语命名方法;方法的命名意义越明确越好(saveUserData比saveData好)

       类的命名: 类是对象的模板,既然用来命名对象的模板,用名词则显得再合适不过。同样,名称也是越具体越好(Apple肯定比Fruit好)

当然命名可以讨论的内容不仅仅是这些,例如减少那些容易产生混淆的方法命名(saveUserInfo和saveUserData就容易让人摸不着头脑)。当项目越来越复杂的时候,命名就成为了一项头疼的工作,但是为命名花点时间是值得的,这样可以让代码看起来没有那么的痛苦。

短小的方法

 如何理解短小的方法(就是一个方法只做一件事)

什么是只做一件事呢,就是方法内的操作应该在一个抽象层面上,这里举个栗子:

方法:买菜1{

  if(有芹菜){

    买芹菜;

    现金付款,

    找零

  }else if(有茄子){

    买茄子;

    微信付款;

    if(钱不够){

      跟媳妇申请买菜钱;
      继续付款;
     }
   }

   ...继续买肉
  }

 

方法:买菜2{

   买青菜;
   买肉;
  }

 

买菜1和买菜2那个更清晰呢,很明显是方法2,而且买青菜和买肉是统一抽象层级上的东西,如果把如何买菜和如何买肉的逻辑也加到大方法里面的话,写起来可能很爽,但看起来就会有点头大。

简洁的类

 经常看到许多庞大的类,里面的变量和方法包罗万象,就像变形金刚那些能合体的机器人一样,看起来非常的强大。但是一旦某个部分出现了bug,就容易引起整体的崩溃。

那么这些庞大的类是如何形成的呢,我想一大部分原因是修改方便,看着只改几行代码就可以加一个功能,更多人是不会思考如何重构或者创建新的类来完成工作的,到最后就变成了一个巨无霸类。而一旦出现比较大的变更,修改可能是灾难性的。

所以我们要时常警惕类的大小以及功能的单一性,既然是面向对象编程,不能让我们构造的对象最后变成了四不像。

至于至于如何提高类的内聚性,这里就不再详述了。

 

上述所列的都是为了增加代码的可读性,如果可读性大大的提高了,那代码其实也就具有了自注释的特性,也能够帮助程序员减轻写注释的负担。当然,写不写注释还是要看项目组的总体要求,但是要记得时常修改程序的注释,不要在注释上留坑。

 

posted @ 2021-01-18 15:42  gengone  阅读(32)  评论(0编辑  收藏  举报