《重构:改善既有代码的设计》—第1章1.2节重构的第一步
2023-09-11 14:17:36 时间
每当我要进行重构的时候,第一个步骤永远相同:我得为即将修改的代码建立一组可靠的测试环境。这些测试是必要的,因为尽管遵循重构手法可以使我避免绝大多数引入bug的情形,但我毕竟是人,毕竟有可能犯错。所以我需要可靠的测试。
![d6f3121f2a5543d79618b29886d3f1386119b752](https://yqfile.alicdn.com/d6f3121f2a5543d79618b29886d3f1386119b752.jpeg)
重构前,先检查自己是否有一套可靠的测试机制。这些测试必须有自我检验能力。
重构·改善既有代码的设计.03之重构手法(上) 之前的重构系列中,介绍了书中提到的重构基础,以及识别代码的坏味道。今天继续第三更,讲述那些重构手法(上)。看看哪些手法对你的项目能有所帮助......
系统重构的道与术 准备以重构工作中容易产生误区的地方或容易被忽视的重点来聊聊,既不重复网上千篇一律的各种方案资料,也对重构工作有参考价值。
Rename Method 函数改名 问题函数的名称未能揭示函数的用途。方法修改函数名称。动机好的函数需要有一个清晰的函数名。
什么是重构 在不改变代码外在行为的前提下,对代码做出修改以改进程序内部的结构简单地说就是在代码写好后改进它的设计 谁该阅读这本书 专业程序员(能够提高你的代码质量) 资深设计师和架构规划师(理解为什么需要重构,哪里需要重构) 带着疑问去读: 如果你想要知道重构是什么。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
本节书摘来自异步社区《重构:改善既有代码的设计》一书中的第1章,第1.2节重构的第一步,作者【美】Martin Fowler,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.2 重构的第一步
每当我要进行重构的时候,第一个步骤永远相同:我得为即将修改的代码建立一组可靠的测试环境。这些测试是必要的,因为尽管遵循重构手法可以使我避免绝大多数引入bug的情形,但我毕竟是人,毕竟有可能犯错。所以我需要可靠的测试。
由于statement()的运作结果是个字符串,所以我首先假设一些顾客,让他们每个人各租几部不同的影片,然后产生报表字符串。然后我就可以拿新字符串和手上已经检查过的参考字符串做比较。我把所有测试都设置好,只要在命令行输入一条Java命令就把它们统统运行起来。运行这些测试只需几秒钟,所以你会看到我经常运行它们。
测试过程中很重要的一部分,就是测试程序对于结果的报告方式。它们要么说“OK”,表示所有新字符串都和参考字符串一样,要么就列出失败清单,显示问题字符串的出现行号。这些测试都能够自我检验。是的,你必须让测试有能力自我检验,否则就得耗费大把时间来回比对,这会降低你的开发速度。
进行重构的时候,我们需要依赖测试,让它告诉我们是否引入了bug。好的测试是重构的根本。花时间建立一个优良的测试机制是完全值得的,因为当你修改程序时,好测试会给你必要的安全保障。测试机制在重构领域的地位实在太重要了,我将在第4章详细讨论它。
![d6f3121f2a5543d79618b29886d3f1386119b752](https://yqfile.alicdn.com/d6f3121f2a5543d79618b29886d3f1386119b752.jpeg)
重构前,先检查自己是否有一套可靠的测试机制。这些测试必须有自我检验能力。
重构·改善既有代码的设计.03之重构手法(上) 之前的重构系列中,介绍了书中提到的重构基础,以及识别代码的坏味道。今天继续第三更,讲述那些重构手法(上)。看看哪些手法对你的项目能有所帮助......
系统重构的道与术 准备以重构工作中容易产生误区的地方或容易被忽视的重点来聊聊,既不重复网上千篇一律的各种方案资料,也对重构工作有参考价值。
Rename Method 函数改名 问题函数的名称未能揭示函数的用途。方法修改函数名称。动机好的函数需要有一个清晰的函数名。
什么是重构 在不改变代码外在行为的前提下,对代码做出修改以改进程序内部的结构简单地说就是在代码写好后改进它的设计 谁该阅读这本书 专业程序员(能够提高你的代码质量) 资深设计师和架构规划师(理解为什么需要重构,哪里需要重构) 带着疑问去读: 如果你想要知道重构是什么。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- 新闻发布系统,SQLHelper重构
- 代码重构——基础篇
- 重构,拥有多个构造函数(重载)的类
- #华为云·寻找黑马程序员#【代码重构之路】如何优雅的关闭外部资源
- 代码重构(五):继承关系重构规则
- 代码重构(四):条件表达式重构规则
- 《重构—改善既有代码设计》——第二章重构原则——学习笔记
- 重构-使代码更简洁优美:实际经验之谈(提供一技巧,让你省掉N多代码)
- 给飞驰的法拉利换引擎 - 谈边做业务边做架构重构(2)
- 关于基于Event Sourcing模式实现的领域模型如何处理模型重构的问题的思考
- CSS代码重构与优化
- 使用JavaScript Function.prototype进行代码重构的一些例子
- python代码重构优化的方法,助你一臂之力
- 【SOP 】配电网故障重构方法研究【IEEE33节点】(Matlab代码实现)
- 基于遗传算法的配电网重构研究(Matlab代码实现)
- 配电网重构|基于新颖的启发式算法SOE的随机(SDNR)配电网重构(Matlab代码实现)【算例33节点、84节点、119节点、136节点、417节点】
- 【配电网故障重构SOP】基于二阶锥松弛的加光伏风机储能进行的配电网故障处理和重构【考虑最优潮流】(Matlab代码实现)
- #华为云·寻找黑马程序员#【代码重构之路】如何优雅的关闭外部资源
- #华为云·寻找黑马程序员#【代码重构之路】如何“消除”if/else
- 无码系列5.1 代码重构 消除重复代码
- Android 代码重构案例
- 软件架构设计杂记: 好作品是改出来的,好的代码是不断重构打磨出来的, 心性是历经艰难困苦修炼出来的
- 代码重构技术方法
- 重构:改善既有代码的设计
- 重构:去掉代码中的坏味道