重构 学习笔记 refactoring martin fowler

前言 “每当我要进行重构的时候, 第一个步骤永远相同: 我得为即将修改的代码建立一组可靠的测试环境. 这些测试是必要的, 因为尽管遵循重构准则可以使我避免绝大多数的臭虫引入机会, 但我毕竟是人, 毕竟有可能犯错误. 所以我需要可靠的测试. ” 测试代码是重构的保证, 请确认重构是在测试代码的支持下完成的; 如果没有测试代码, 请在重构的时候加入测试代码 重构应当是小步, 有序的进行, 当某一小步失败时,应当确认能回退到上一步; 并从上一步开始重新重构, 而不是在错误的基础上进行调试; 重构是软件开发过程中的一个重要环节,它涉及到对现有代码的改进,目的是为了提高代码的可读性、可维护性和设计质量,而不改变其外部行为。本文主要围绕重构的关键概念、原则、时机以及面临的挑战展开讨论。 重构的核心是通过一系列微小的、有序的步骤改善代码结构,确保在任何时刻代码都能正常工作。正如马丁·福勒在《重构》一书中提到的,每次重构前,都需要建立可靠的测试环境,以保证在重构过程中引入的错误能够被及时发现和修复。测试代码是重构的基石,它为重构提供了安全网,使得开发者在修改代码时有信心不会破坏原有的功能。 “什么是重构”这一节中,马丁·福勒指出,重构是一个在不改变代码外在行为的前提下,优化内部结构的过程。这一过程有助于保持代码的整洁和设计的清晰,即使初始设计不佳,也能通过不断的重构逐渐演变成优秀的代码。在开发过程中,设计并不是一开始就明确的,而是随着重构的进行逐渐揭示出来。 重构的原则包括两方面:一是改进软件设计,消除重复代码是提高设计质量的关键。重复代码不仅增加了代码量,也增加了理解和修改的难度。通过消除重复,可以使代码表达更加集中,减少出错的可能性。二是使软件更容易被理解,重构有助于提升代码的可读性,帮助开发者更快地理解代码,从而提高工作效率。 重构的时机通常有三个:在添加新功能时、修复错误时、代码审查时。在这些时刻,对代码进行重构不仅可以保持代码的整洁,还能预防潜在的问题。 然而,重构也面临一些难题,比如处理程序与数据库的耦合、修改已发布的接口、以及应对难以通过设计手法解决的改动。对于这些问题,需要谨慎处理,例如在修改接口时,可以保留旧接口并让其调用新接口,以减少对现有系统的冲击。 至于何时不应进行重构,当代码过于混乱,重写可能比重构更有效,或者代码本身存在问题无法正常运行,或者项目接近最后期限时,重构可能不是优先考虑的选项。 代码中常见的“坏味道”,如重复的代码、过长的函数、过大的类和过长的参数列表,都是重构的目标。对于这些情况,可以采用特定的重构技术来解决,例如通过Extract Method提炼重复代码,将过长的函数拆分为小函数,将过大的类拆分成多个小类,以及通过调整参数列表简化接口。 重构是提升软件质量的重要手段,它需要在测试的保护下,通过一系列小步骤逐步进行,以确保代码的稳定性和设计的不断优化。理解并掌握重构的原则和技巧,是每个专业程序员必备的技能。




























剩余31页未读,继续阅读

- aganzhe2012-08-11整理的很好,资源不错,值得参考。

- 粉丝: 23
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 知名国企EPC总承包项目管理.pdf
- 网络空间清朗行动实施方案.doc
- 基于单片机的煤气报警器设计.doc
- 高中数学第11章算法初步11.3基本算法语句11.3.1输入输出语句和赋值语句课件湘教版必修.ppt
- 网站设计解决方案.doc
- 2023年数字图像处理实验报告2.doc
- 安防监控数字硬盘录像机和网络硬盘录像机的区别.doc
- S120学习教程第一部分:产品介绍 01功率与控制部分
- 基因工程的工具酶和载体.ppt
- 谈谈高职电子商务专业教学改革.doc
- 智慧建造筑基智慧城市建设PPT课件.pptx
- 最新网络安全法考试试卷(电网)--含答案.pdf
- 林业工作信息化问题及路径.docx
- 基于单片机空气PM2.5浓度检测系统设计毕业论文.doc
- 全国职业院校信息化教学大赛竞赛事解读.ppt
- 虚拟机技术在网络操作系统课程教学中的应用..doc


