项目组推荐了一本书《大话重构》,看完了第一部分之后,结合自己以往重构的认知和经历,这本书给了我很实际的指导。
重新认识重构定义,重构是一项愉快的活动
重构:系统重构是一套严谨而安全的过程方法,它通过一系列行之有效的方法与措施,保证软件在优化的同时,不会引入新的Bug,保证软件改造的质量。
测试,是重构的保险索
重构的程序,必须不断的经过测试,保证不改变系统的外部行为,即对外显示的数据;
大布局和小步快跑
大布局:全面整理系统需求,分析系统功能,再全面设计系统,开发,测试。
小步快跑:采用一个一个连续不断地小设计,在大规划的前提下,着眼当前设计实现。小步快跑体现了敏捷开发的特点:简单,快速反馈(测试)。
重构应避免大设计,尽量采用“小步快跑”的设计模式;
小步快跑
这种模式类似于开车,不断地微调方向盘的方向,清楚的指导自己的目的地,再自己航向上,不断地调整。这样的好处,能够及早的发现错误,及时纠正。不断地实现小设计,最终完成重构。
越近期的计划越细,越远期的规划越粗。
重构是一系列的等量变换
系统重构要求对代码的修改,不能改变软件的外部行为,因此系统重构的所有方法,都是一种代码的等量变换。像解答数学题一样,使用不同的方式解出相同的答案。
演变过程
public class HelloWord
{
public String sayHello(Date now, String user)
{
Calendar c;
int h;
String s = null;
c = Calendar.getInstance();
c.setTime(now);
h = c.get(Calendar.HOUR_OF_DAY);
if(h>=6 && h<12){
s = "Good morning!";
}
else if (h >= 12 && h < 19)
{
s = "Good afternoon!";
}
else {
s = "Good night!";
}
s = "Hi," + user + "." + s;
return s;
}
}
通过增加注释,调整顺序,重命名变量,分段,抽取方法,抽取类,抽取接口。
这是一个很棒的重构过程;