阅读目标 重构是什么?
为什么应该重构?
应该在什么地方重构?
如何进行重构??
有哪些重构名录经典案例?
Q:为什么要重构? 提升/保持代码质量
个人成长
练习、实践设计思想
Q:重构的目标对象是什么? 对什么进行重构? 大型重构:系统、模块、代码结构、类与类间关系 分层、模块化、解耦、抽象可复用组件
小型重构:类、函数、变量 规范命名、规范注释、消除超大类或函数、提取重复代码
Q:重构的时机 误区:代码烂到一定程度再集中重构
正解:持续重构,将重构作为开发的一部分
如同身体的健康需要持续地关注、保持,而非等到重病时才寻求治疗;代码的质量也应该持续关注和保持,而非胡乱堆砌代码到问题爆发才尝试集中解决。
如何判定代码是否需要解耦? 看修改代码会不会牵一发而动全身
可视化模块与模块间、类与类间的依赖关系,根据依赖关系图的复杂性判断是否需要解耦重构
Q:重构之“道” 如何给代码解耦? 基本思想 封装与抽象
隐藏实现的复杂性和易变形,提供稳定、易用的抽象接口
中间层
简化模块或类之间的依赖关系,让依赖关系从“网状”变成“星状”