1 何为重构
重构: 在不改变软件可观察行为的前提下改善其内部结构
2 为何重构
重构可以提高代码质量
3 何时重构
事不过三,三则重构。
重构应该是在开发过程中实时的、渐进的演化过程:
- 添加新功能时重构
- 修补错误时重构
- 复审代码时重构
4 怎么对经理说
为了质量 or 不要告诉
5 重构的难题
5.1 数据库
数据迁移:非对象数据库,在对象模型和数据库模型之间插入一个分割层。
数据访问:迁移之前先运用访问函数造成“数据已迁移”的家乡,迁移之后修改访问函数。
5.2 修改接口
对已发布的公开接口,保留旧接口,旧接口调用新接口,旧接口标记为deprecated。
如非必要,不要过早发布接口。
public函数只throws异常基类。
5.3 何时不该重构
- 项目不能工作
- 项目生命周期即将结束
- 项目期限受限
- 重构代价过于沉重
6 重构与设计
重构是与设计互补的。重构无法取代设计,但可以减少预先设计的压力。
7 重构与性能
先实现,再优化。
发现热点、去除热点。