重构概述 为何重构? 助你找到程序错误 重构是一个Code Review和反馈的过程。在另 一个时段重新审视代码,会容易发现问题和加深对代 码的理解。 助你提高编程速度 设计和代码的改进都可以提高开发效率,好的设 计和代码都提高开发效率的根本。 提高设计和编码水平 Today 对代码的重构,是快速提高设计和编码水平的方 Today's 法。 Average v www.wind.com.cn
重构概述 助你找到程序错误 重构是一个Code Review 和反馈的过程。在另 一个时段重新审视代码,会容易发现问题和加深对代 码的理解。 助你提高编程速度 设计和代码的改进都可以提高开发效率,好的设 计和代码都提高开发效率的根本。 提高设计和编码水平 对代码的重构,是快速提高设计和编码水平的方 法。 为何重构?
重构概述 何时重构? 增加新功能时一并重构 增加功能前需要理解修改的代码,如果发现代码 不易理解且无法轻松增加功能,此时就需要对代码进 行重构。 修补错误时一并重构 通过重构改善代码结构,能够帮助你找出BUG 原因。 Review代码时一并重构 Today 有经验的开发人员Review代码时能够提出一些 Today's 代码重构的建议。 Average v www.wind.com.cn
重构概述 增加新功能时一并重构 增加功能前需要理解修改的代码,如果发现代码 不易理解且无法轻松增加功能,此时就需要对代码进 行重构。 修补错误时一并重构 通过重构改善代码结构,能够帮助你找出BUG 原因。 Review 代码时一并重构 有经验的开发人员Review代码时能够提出一些 代码重构的建议。 何时重构?
重构概述 何时不该重构? 代码实在太混乱,重构还不如重写 项目即将结束时避免重构 此时已经没有时间进行重构了,应该在早些时候 进行重构。如果程序有必要重构,说明该项目已经欠 下“债务”,需要项目完成后进行偿还。 Today Today's Average Vol 52.w www.wind.com.cn
重构概述 代码实在太混乱,重构还不如重写 项目即将结束时避免重构 此时已经没有时间进行重构了,应该在早些时候 进行重构。如果程序有必要重构,说明该项目已经欠 下“债务”,需要项目完成后进行偿还。 何时不该重构?
重构概述 重构与设计 重构与设计彼此互补 良好的设计是重构的目标,重构弥补设计的不足。 重构使得设计方案更简单 如果选择重构,预先设计时候只需找出足够合理 的解决方案,实现的时候对问题会进一步加深,此时 可以重构成最佳的解决方案。 重构能够避免过度设计 设计人员需要考虑将简单方案重构成灵活方案的 Today 难度。如果容易,只需实现简单方案。 Today's Average Vo www.wind.com.cn
重构概述 重构与设计彼此互补 良好的设计是重构的目标,重构弥补设计的不足。 重构使得设计方案更简单 如果选择重构,预先设计时候只需找出足够合理 的解决方案,实现的时候对问题会进一步加深,此时 可以重构成最佳的解决方案。 重构能够避免过度设计 设计人员需要考虑将简单方案重构成灵活方案的 难度。如果容易,只需实现简单方案。 重构与设计
代码的坏味道 1.重复的代码(Duplicated Code)☆改☆☆☆ 重复代码是最常见的异味,往往是由于Copy& Paste造成的。 ☆表示坏味 重构方法: 道指数 重复代码在同一个类中的不同方法中,则直接 提炼为一个方法 如果重复代码在两个互为兄弟的子类中,则将 重复的代码提到父类中 如果代码类似,则将相同部分构成单独函数, 或者用Template Method设计模式 Today Today's Average Vol www.wind.com.cn
1. 重复的代码 (Duplicated Code) ☆☆☆☆☆ 重复代码是最常见的异味,往往是由于Copy & Paste 造成的。 重构方法: 重复代码在同一个类中的不同方法中,则直接 提炼为一个方法 如果重复代码在两个互为兄弟的子类中,则将 重复的代码提到父类中 如果代码类似,则将相同部分构成单独函数, 或者用 Template Method 设计模式 代码的坏味道 ☆表示坏味 道指数