首页 > 网站 > 建站经验 > 正文

代码整洁之道—初写代码者易犯的错误

2024-04-25 20:45:43
字体:
来源:转载
供稿:网友

1、不必要的重复代码

      很多初学者喜欢复制粘贴,是个非常不好的习惯,最后导致系统充斥着大量重复的代码,对后期的维护相当不便。这个是初学者最易犯的低级错误。

 

2、逻辑混乱、思路不清晰

      

     我曾见过这样的代码

[java] view plaincopy
  1. boolean flag;  
  2.   
  3. bsp;flag = str.indexOf(",")>-1;  
  4.                      if(flag==false)  

大家注意这句

[java] view plaincopy
  1. if(flag==false)  

 

当然这个不能算错误,但是给人的感觉很不好。

 

还有三四层的if  else 、循环里面套三四层的循环,绝对看到你头晕脑胀。

 

例如以下代码:

 

[java] view plaincopy
  1. if(userObj!=null){  
  2.     if(!"3".equals(userObj.getType())){  
  3.         if("1".equals(userObj.getStatus()))  
  4.             throw new DefineException("");  
  5.         if("2".equals(userObj.getStatus()))  
  6.             throw new DefineException("");  
  7.     }else{  
  8.         throw new DefineException("");  
  9.     }  
  10. }else{  
  11.   throw new DefineException("");  
  12. }  

既然已经抛出异常了,咋还写这么多if else,还有这么多 1 2 3谁又知道是什么意思,若是以后1 2 3 含义有变化那就要到处修改了。 修改如下

 

[java] view plaincopy
  1.   if(userObj==null){  
  2.         throw new DefineException("");  
  3.     }  
  4.            
  5.     if(UserObj.TYPE_WEB.equals(userObj.getType())){  
  6.         throw new DefineException("");  
  7.     }  
  8.     if(UserObj.STATUS_LOCKED.equals(userObj.getStatus())){  
  9.         throw new DefineException("");  
  10.     }  
  11.     if(UserObj.STATUS_INVALID.equals(userObj.getStatus())){  
  12.         throw new DefineException("");  
  13.     }  
  14.       

 

将状态以静态常量的方式写到VO类里面,这样以后维护起来也方便一些。

 

3、类的职责过多

      这个也是初学者经常犯的错误,违反单一职责原则,将本来不属于A类的功能写到A类里来。造成耦合过高。

 

能力有限暂时写这么多,抛砖引玉。欢迎大家补充集思广益,后续我将大家的意见整理出来,持续更新。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表