书:pan.baidu.com/s/1KAWL4VrifTQddUFIwWHd9Q?pwd=p7qu
- 重构的定义:
- “重构是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。”
- 重构的目的:
- “重构的目的是为了改善软件的设计,使其更加清晰、易于理解和维护。通过重构,我们可以减少代码的复杂度,提高代码的可读性和可扩展性。”
- 代码的“坏味道”:
- “代码中存在一些‘坏味道’,它们表明代码可能存在设计上的问题。这些‘坏味道’包括重复代码、过长函数、过长参数列表、全局数据、可变数据等。当发现这些‘坏味道’时,我们应该考虑进行重构。”
- 重构的前提:
- “重构的首要前提是拥有一个可靠的测试环境。只有当我们能够确保代码在重构后仍然能够正常工作,我们才能放心地进行重构。”
- 测试在重构中的作用:
- “测试在重构中扮演着非常重要的角色。通过编写自动化测试,我们可以确保重构后的代码仍然符合预期的行为。这有助于我们在重构过程中捕捉到潜在的错误。”
- 重构的步骤:
- “重构通常以小步进行,每次只关注一个问题。这有助于我们更容易地发现和解决问题,同时减少引入新错误的风险。”
- 提炼函数:
- “提炼函数是一种常用的重构手法。当你发现一段代码可以被组织在一起并独立出来时,你可以将它放进一个独立函数中,并将函数名称解释为该函数的用途。”
- 内联函数:
- “如果一个函数的本体与名称同样清楚易懂,你可以考虑使用内联函数的手法。这意味着在函数调用点插入函数本体,然后移除该函数。”
- 封装:
- “封装是重构中的一个重要概念。通过封装,我们可以隐藏类的内部实现细节,只暴露必要的接口给外部使用。这有助于减少类之间的耦合度,提高代码的可维护性。”
- 搬移特性:
- “搬移特性是一种将代码从一个类移动到另一个类的重构手法。当你发现某个类中的代码与其所驻之外的另一个类进行更多交流时,你可以考虑使用这种手法来改进代码的结构。”
- 重构的挑战:
- “重构虽然可以带来很多好处,但也面临一些挑战。例如,重构可能会延缓新功能的开发进度;同时,重构也需要一定的经验和技巧,否则可能会引入新的错误。”
- 重构的意义:
- “重构的意义在于通过改进代码的设计来提高软件的质量。这不仅可以使代码更加易于理解和维护,还可以减少潜在的错误和缺陷。长期来看,重构可以为软件的开发和维护带来显著的收益。”
以上是从《重构:改善既有代码的设计》(第2版)中提取的12个原文内容概述,涵盖了重构的定义、目的、前提、步骤、常用手法、挑战和意义等方面。