代码重构心得

 在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请登陆疯狂java培训官网。

  这一段时间做了些代码重构的工作,代码检查工具是在sonar,它集成了CheckStyle,PMD,Findbugs的代码校验规则,现把最近的工作总结如下:

  1、抛出捕获异常

  1.1 不要抛出原始异常,如:throwRuntimeException()

  1.2 不要声明冗余的异常,在方法中声明的时候用throws,方法体中并不会出现的异常不要声明

  1.3 不要仅仅重新抛出异常,不做任何处理直接throw e,没有意义,徒增代码量和复杂度

  1.4 能在代码判断出的问题,就不要用catch,提高性能,如:不要catch

  NullPointerException

  1.5 尽量不要catchException,捕获异常一定要准确

  1.6 catch捕获异常后立即抛出,抛出的newException需要带上捕获到的exception,即已oldexception为参数来实例化new exception,不然,会丢失stacktrace

  2、类、方法、成员变量注意事项

  2.1 修饰符顺序 Thecorrect order is :

  public, protected, private, abstract,static, final, transient,

  volatile, synchronized, native, strictfp.

  2.2 成员变量,除了static final可以是public,别的都必须是private,提供get set方法

  2.3 对于final修饰的成员变量,直接再加上static修饰,提高性能,且变量名全用大写字母

  2.4 不使用重复的字符串,当一个字符串重复使用时,抽取成一个常量,extract constant

  2.5 不在instance方法中修改static属性,写一个static的方法来修改static变量,在instance方法 中调用

  2.6 return的时候,没必要创建变量,如:inti = 1; return i;

  改成 return 1;

  return布尔值的时候,尽量简化

  如: if(){return true;}else{return false}

  改成:if(){return true;}return false

  2.7 方法体中不允许修改方法的参数,如果确实需要修改,再声明一个变量

  2.8 JavaBean中有变量是Timestamp的时候,get set方法需要做处理,不能直接试用ts,而是new Timestamp(ts.getTime())

  2.9 不在构造方法中调用Thread.start()起多线程,另写一个方法,初始化对象后调用;

  写一个组件的时候,写init的同时记得写destroy,销毁属性对象和线程

  2.10 尽量不使用匿名内部类

  2.11 单例模式,只有一个private的构造方法,建议声明成final类

  3、ConnectionStatement ResultSet等对象一定要在finally中关闭,且在finally中需要try catch

  4、HashMap的遍历,试用map.entrySet(),不使用map.keySet()

  5、编码风格

  5.1 if else语句必须使用大括号

  5.2 静态常量必须是全大写字母

  5.3 普通变量必须以小写字母开头,只能由大小写字母和数字组成

  5.4 方法名必须以小写字母开头,只能由大小写字母和数字组成

  5.5 代码中未使用的引用import,删掉

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。技术知识沉淀深厚的老师,让你感受Java的魅力,激发你对于编程的热爱,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,成为真正的技术高手;通过大量全真企业项目疯狂训练,迅速积累项目经验。让你成为技能型的现代化高端人才,迅速获得高薪就业!时间不等人,赶紧联系我们吧!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值