重构保障
1、建立测试环境(比如单元测试),确保重构后的代码不会带来新的 bugs。
重构前提
1、当一个函数或类履行了太多的职责。
2、当一个变更存在多个相同的修改点。
3、当需要为程序添加一个特性,而代码结构使你无法很方便地那么做。
重构原则
1、尽量以最小的步伐修改程序。如果你犯下错误,很容易发现它。
2、使用有意义的命名,增强程序的可读性,代码本身应该能够表现自己的目的。任何一个 fool
都能写出计算机可以理解的代码,惟有写出人类容易理解的代码,才是优秀的程序员。
3、函数应该放在它所使用数据所属的 object 内。
重构手段
1、Extract Method,把一个昂长的方法按职责抽取为多个简洁的方法。
2、除去冗余的临时变量。往往一个临时变量的存在是为了保存一个运算的结果,可以考虑把临
时变量及临时变量相关的运算抽取到一个单独的函数中。
3、合适的选择设计模式。
重构节奏 - 测试、小修改、测试、小修改......正是这种节奏让重构变得快速和安全。
这一章以一个实例演示了重构的全过程,使我本来零星破碎的思维变得逐渐完整,当然这一章中所用到的重构手段和原则并不是全部,continue......
分享到:
相关推荐
Refactoring2-free-chapter_cn
### Refactoring-to-Pattern #### 书本概览与核心理念 《Refactoring-to-Pattern》这本书探讨了重构(refactoring)与模式(pattern)之间的结合应用,旨在帮助软件开发者改进现有代码的设计,并通过模式来解决...
1. 重构的定义和目的:重构是一种系统性的方法,用于在不改变软件外部行为的前提下,对代码的内部结构进行优化和调整,目的是提高代码的可读性、可维护性和可扩展性。 2. 重构的时机和重要性:重构不是一开始就进行...
5. **实战案例分析**:通过真实的项目案例,展示了如何应用上述理论和技术解决实际问题。 6. **最佳实践总结**:归纳总结了重构过程中的一些最佳实践,帮助读者避免常见错误。 #### 四、O’Reilly 出版社资源 1. *...
标题中的"Python库 | JoeLiu_RF_Refactoring-1.0.2-py3-none-any.whl"指的是一款名为JoeLiu_RF_Refactoring的Python库,版本为1.0.2。在Python生态系统中,库是可重复使用的代码模块,它们提供了各种功能,帮助...
马丁·福勒在他的演讲中提供了一个具体的重构示例,通过逐步展示代码的变化来解释重构的过程。以下是一个简化的示例: - **原始类图**: - `Movie`: 包含 `_title` 和 `_priceCode` 属性。 - `Rental`: 关联 `...
重构案例此示例展示了如何将提取后剩余的许多小型私有方法放置到您删除(直到提取方法无法执行)到不同的类中以用于它们的角色。 Extract until you drop 可以在和上详细查看。1. 头等舱 package abstract_till_you_...
重构是软件开发过程中的一个重要环节,它涉及到在不改变软件外在行为的前提下,改进其内部结构,使得代码更易读、更易理解、更易维护。这本书详细探讨了重构的实践技巧和策略,对提高代码质量具有深远影响。 本书的...
DSP_refactoring_前端项目_vueflask.zip DSP_refactoring_前端项目_vueflask.zip DSP_refactoring_前端项目_vueflask.zipDSP_refactoring_前端项目_vueflask.zip DSP_refactoring_前端项目_vueflask.zip
Refactoring-重构_改善既有代码的设计
《Refactoring(2008-01-12)-1.wmv》是一部关于软件开发中重构技术的视频教程,时长为1小时6分钟25秒,文件大小为25654KB。该资源主要针对使用ASP.NET 2.0、VB.NET等技术的开发者,探讨了如何通过重构来提升代码质量...
1. **提取方法(Extract Method)**:当发现一段代码被重复使用或者逻辑复杂时,可以将其抽取为一个独立的方法,提高代码复用性和可读性。 2. **内联方法(Inline Method)**:如果一个方法只在一个地方被调用,...
重构是软件开发过程中的一个重要环节,它并不改变软件的外部行为,而是通过改进内部结构来提高代码的可读性和可维护性。 在本书中,作者详细阐述了重构的必要性,指出随着项目的推进,代码往往变得复杂且难以理解,...
《重构:改善既有代码的设计》是一本由Martin Fowler所著的经典书籍,该主题与提供的压缩包文件"Refactoring(2007-12-30)"紧密相关。重构是软件开发过程中的一个重要环节,其核心目的是在不改变代码外在行为的前提下...
book-refactoring2-code ...动态类型语言中变量命名带上类型很有意义, 这里使用不定冠词 a 修饰它强调一个场表演 提炼函数: playFor play 变量可以由 performance 变量计算得到, 以查询取代临时变量 内联变量: 使用 pla
"Refactoring" was conceived in Smalltalk circles, but it wasn't long before it found its way into other programming language camps. Because refactoring is integral to framework development, the ...
gildedrose-ref-kata-ts 与Jest合作的TS中的GildedRose-Refactoring-Kata。运行测试npm test 运行Node.js应用npx ts-node app.ts 3 2