k Quote Chart 图围曲 GO WITH THE CUSTOMERS 重构-改善既有代码的设计 www.wind.com.cn
重构-改善既有代码的设计
目录 重构概述 代码的坏味道 重构名录 构筑测试体系 Today Q&A Today's Average Vol www.wind.com.cn
目录 重构概述 代码的坏味道 重构名录 构筑测试体系 Q&A
重构概述 什么是重构? 重构是对软件内部结构的一种调整,目的是在 不改变外部行为的前提下,提高可理解性,降低 修改成本。 重构是严谨、有序地对完成的代码进行整理从 而减少出错的一种方法。 Today Today's Average Vol s2. www.wind.com.cn
重构是对软件内部结构的一种调整,目的是在 不改变外部行为的前提下,提高可理解性,降低 修改成本。 重构是严谨、有序地对完成的代码进行整理从 而减少出错的一种方法。 什么是重构? 重构概述
重构概述 两顶帽子 利用重构技术开发软件时会把时间分配给两种行为: [重构与添加新功能] 添加新功能时,不应该修改既有代码,只管添加 新功能。 重构时你就不能再添加功能,只管改进程序结构。 两顶“帽子”可交替进行,一会重构,一会添加 新功能。 Today Today's Average Vo www.wind.com.cn
重构概述 利用重构技术开发软件时会把时间分配给两种行为: [重 构]与[添加新功能] 添加新功能时,不应该修改既有代码,只管添加 新功能。 重构时你就不能再添加功能,只管改进程序结构。 两顶“帽子”可交替进行,一会重构,一会添加 新功能。 两顶帽子
重构概述 为何重构? 改进程序设计 程序员为了快速完成任务,在没有完全理解整体 架构之前就修改代码,导致程序逐渐失去自己的结构。 重构则帮助重新组织代码,重新清晰的体现程序结构 和进一步改进设计。 提高程序可读性 容易理解的代码很容易维护和增加新功能。代码 首先是写给人看的,然后才是计算机看的。 Today Today's Average Vol www.wind.com.cn
重构概述 改进程序设计 程序员为了快速完成任务,在没有完全理解整体 架构之前就修改代码,导致程序逐渐失去自己的结构。 重构则帮助重新组织代码,重新清晰的体现程序结构 和进一步改进设计。 提高程序可读性 容易理解的代码很容易维护和增加新功能。代码 首先是写给人看的,然后才是计算机看的。 为何重构?
重构概述 为何重构? 助你找到程序错误 重构是一个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 设计模式 代码的坏味道 ☆表示坏味 道指数