代码重构的技巧方法

重构是指这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改变程序的内部结构,本质是指代码写好后的设计改进,提高可理解性,降低修改成本。

什么时候重构:

1.三次原则,多次重复的事情,想办法重构

2.添加新的功能时候

3.修补错误时重构

4.复审代码时候重构

为什么要重构:

1.完成今天的任务,我们还要考虑明天;

2.难于阅读的程序,难以修改;

3.逻辑重复的程序,难以修改;

4.添加新行为时,要修改已有代码,难以理解;

5.带复杂逻辑的程序,难以修改;

6.每次重构可以加深对代码的理解,不至于遗忘;

我们希望达到这样的效果:

1.容易阅读;

2.所有逻辑只在唯一地点指定;

3.新的改动不会危及现有行为;

4.简单的表达逻辑;

有这么多重构小技巧:

计算机科学是这样一门科学:它相信所有问题都可以通过增加一个间接层来解决。----Kentn Beck

好的变量命名,可以减少注释,提高可阅读性。

一些没有调用数据库的操作,单纯操作对象提取Utill类,对象设值,提取方法到对象中。

去除一些临时变量,提取方法,临时变量助长冗长复杂函数。

哪些代码的坏味道:

1.重复的代码,相同的表达式,两个互为兄弟子类内含相同表达式;

2.过长的函数,寻找注释,一行注释,也可提炼一个函数;

3.过大的类

4.过长的参数列,对象传递,数据泥团,有关系的数据,提取新对象。

5.发散式变化,散弹式修改,(修改一个点,要修改很多处),放到一个类型,有点ddd的味道;

6.单一原则,一个方法只做一件事,返回数据简洁,不返回多余字段。

7.临时字段,过度耦合消息链;中间人,多一层调用,委托太多

8.过多的注释,有注释是好事,过多注释是代码有问题,方法名是一个很好的解释。

9.太多中间层,有较多无用的层次;

10.switch过多地方使用,添加case,统一到一个地方。大量的if else,可以尝试这样优化;

好的代码习惯,方便后续开发,构筑测试体系:

自动化测试类,assert断言一类,比较结果,小的功能,立即添加测试。

一些优化技巧:

内联函数,内联临时变量。将该变量的引用动作,替换为对他赋值的哪个表达式自身。

变量声明改成final定义,检查是否的确只被赋值一次。

移除对参数的赋值;按值传递,按引用传递。

以查询取代临时变量;

double basePrice = 3*ww;

if(ss >10000{

}else{

}

演变:

double basePrice ()
{
return 3*ww;
}

if(basePrice () >10000{

}
else
{

}

函数本体,替换成一个算法;

java8map

内部类使用,移除萎缩的类;

声明常量替换魔法数,使用枚举等;

简化条件表达式,合并重复的条件片段;

移除控制标记,使用break,continue,return等,单一入口原则;

函数的名称很重要

过多的参数,无用的参数,多态

查询和修改分离;

继承,字段上移,如都有id等,baseRequest;

提炼接口,责任划分是通过多继承实现,java只提供单继承,但是接口可以实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值