重构——改善既有代码的设计

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 设计模式 代码的坏味道 ☆表示坏味 道指数
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《UML经典教程》参考资料:UML建模基础——UML建模相关.pdf
- IT运维管理培训.pdf
- java:23种设计模式.pdf
- 《UML经典教程》参考资料:UML系统分析与架构设计实战.pdf
- 《UML经典教程》参考资料:统一建模语言UML.pdf
- 《UML经典教程》参考资料:UML期末考试参考资料.pdf
- Linux嵌入式实时操作系统开发与应用.pdf
- 《高质量C++编程指南》PDF电子资料(2001,v1.0,共十一章,林锐).pdf
- 数据库设计规范指南(Database Design).pdf
- GCC 中文手册(GNU Tools,2003).pdf
- Python 基础教程(version 0.5).pdf
- JVM 详解(Java Virtual Machine).pdf
- Oracle数据库中的海量数据处理.pdf
- 北京邮电大学:《软件工程》课程教学资源(PPT课件讲稿)软件设计——人机交互界面设计.pdf
- 中国科学技术大学:《计算机视觉》课程教学资源(PPT课件讲稿)第九章 单幅图像深度重建 Depthmap Reconstruction Based on Monocular cues(2/2)基于灭点几何的深度图重建.ppt
- 中国科学技术大学:《计算机视觉》课程教学资源(PPT课件讲稿)第十二章 目标检测与识别 Object Detection and Recognition.ppt
- 中国科学技术大学:《计算机视觉》课程教学资源(PPT课件讲稿)第十一章 三维重建 3D Reconstruction.ppt
- 中国科学技术大学:《计算机视觉》课程教学资源(PPT课件讲稿)第十章 基于立体视觉的深度估计(立体视觉深度获取).ppt
- 中国科学技术大学:《计算机视觉》课程教学资源(PPT课件讲稿)第九章 单幅图像深度重建 Depthmap Reconstruction Based on Monocular cues(1/2)Shape From Shading.ppt
- 中国科学技术大学:《计算机视觉》课程教学资源(PPT课件讲稿)第七章 基于运动视觉的场景复原 Shape(Structure)From Motion.ppt
- 《UML经典教程》参考资料:UML软件建模技术(中文全版,共十四章).pdf
- 《UML经典教程》参考资料:UML Modeling.pdf
- 《UML经典教程》参考资料:UML与Rational Rose讲义.pdf
- 大道至简——软件工程实践者的思想(周爱民).pdf
- 亚信学院:IT服务管理(ITIL、ITSM)产品手册.pdf
- 华中科技大学:《嵌入式系统原理与设计》课程教学资源(讲义)第一章 嵌入式系统概述、第二章 嵌入式处理器.pdf
- 《UML经典教程》参考资料:UML顺序图.pdf
- 江苏大学:《面向对象建模技术》课程教学资源(PPT课件讲稿)第3章 需求建模.pdf
- 跟我学企业敏捷开发(PDF电子资料).pdf
- 东南大学:《C语言进阶——嵌入式系统高级C语言编程》教学资源(讲稿)第一讲 概述(主讲:凌明).pdf
- ARM嵌入式Linux系统开发从入门到精通(共十二章).pdf
- 自动化功能测试技术 QuickTest.pdf
- 《软件测试》课程教学资源(讲稿)第二章 测试用例设计与管理.pdf
- 《设计模式》教学资源(讲稿)第10章 适配器模式.pdf
- 《软件项目管理 Software Project Management》课程教学资源(讲稿)第6讲 软件工作量度量.pdf
- 《软件项目管理》课程教学资源(讲稿)第11章 软件质量管理与软件配置管理.pdf
- 厦门大学:《中间件技术原理与应用》课程教学资源(课件讲稿)概述.pdf
- 海南大学:《信息安全导论 Introduction to Information Security》课程教学资源(课件讲稿)第1章 计算机组成原理、第2章 计算机网络概述.pdf
- 海南大学:《信息安全导论 Introduction to Information Security》课程教学资源(课件讲稿)第3章 信息安全基本概念与原理.pdf
- 海南大学:《信息安全导论 Introduction to Information Security》课程教学资源(课件讲稿)第4章 密码学(齐琦).pdf