重构-重构原则

常用的重构手法:

Extract Method、Move Method、Replace Conditional with Polymorphism、Self Encapsulate Field、Replace Type Code With State/Strategy

重构是融汇在代码中的一种技术,更是一种艺术。


Kent Beck说:“我不是个伟大的程序员,我只是个有着一些优秀习惯的好程序员”

一、What

名称解释:重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

动词解释:重构是使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。


注意:

只是整理代码吗?不止,提供了一种更高效且受控的代码整理技术。

不改变软件可观察行为:软件功能一如既往。


重构与性能优化

都不会改变组件的行为,只会改变其内部结构;

出发点不同:性能优化往往使代码较难理解,但是为了得到所需的性能你不得不那么做。

二、Why

是一种工具,目的:

1、重构改进软件设计

通过消除重复代码--方便未来修改

2、重构使软件更容易理解

利用重构来协助理解不熟悉的代码,可以真正动手修改代码,让它更好地反映出自己的理解

3、重构帮助找到bug

如果对代码进行重构,就可以深入理解代码的作为,并恰到好处地把新的理解反馈回去。

4、重构提高编程速度

改善设计、提升可读性


三、When

1、添加功能时重构

帮助理解需要修改的代码,更灵活的增加新特性

2、修补错误时重构

代码更具有可读性

3、复审代码时重构

极限编程中的“结对编程”形式,把代码复审的积极性发挥到了极致。

四、难题

1、数据库

在对象模型和数据库模型之间插入一个分隔层,隔离两个模型各自的变化。

2、修改接口

对于已发布接口,保留旧接口,必须同时维护新旧两个接口。让旧接口调用新接口。所以不要过早发布接口

五、NO

代码不能正常运作-重写,而非重构

项目已近最后期限


六、重构与设计

预先设计

重构:不做任何设计,有效运作之后,重构


预先设计出一个足够合理的解决方案就够了,再重构

七、重构与性能

虽然重构可能使软件运行更慢,但它也是软件的性能优化更容易。首先写出可调的软件,然后调整它以获取得足够速度。


你可能感兴趣的:(重构-改善既有代码的设计)