重构是指在不改变代码外在行为的情况下,对代码进行改进,以提高代码质量和维护性。重构强调的是在已有代码的基础上,用更好的方式描述同样的逻辑。
重构的发展历程
重构最早由Martin Fowler于1999年提出,但其实它的历史可以追溯到早期的Structured Programming。Structured Programming本身就是把代码分成多个子过程,并通过不同的模块和函数进行组合。这种方式可以提高代码的可读性、可维护性和可扩展性。但随着代码规模的增大,仅仅分离子过程已经无法满足需求。在Object-oriented之后,更多的面向对象思想为重构提供了更多的方法。
重构的优点
重构的优点主要有以下几个方面:
1. 可读性 - 重构可以把复杂的代码逻辑拆分成易于理解和修改的代码块。这对于多人开发或维护一个项目的开发人员来说非常重要。
2. 代码复用 - 通过重构我们可以将代码拆分成较小的部分,从而可以被更好地重用。在软件开发中,代码复用是一项重要的技术。
3. 维护性 - 通过重构我们可以使代码更加容易维护。如果代码没有经过重构,当出现问题时,开发人员需要花费更多的时间和精力来修复问题。如果代码经过重构,修复成本将大大降低。
4. 可扩展性 - 在软件开发中,我们通常需要添加新特性或修改现有特性。通过重构,我们可以使代码的架构更加灵活和易于扩展。
重构的方法
除了定义重构以及其优点之外,了解一些常见的重构方法也十分有必要。以下是我们可以使用的一些常见重构方法:
1. 添加函数 - 通过将代码中的部分提取为方法来使代码更简洁。
2. 提取类 - 将复杂的类分成更简单的类来提高代码的可读性。
3. 模式匹配 - 编写更易于理解的代码,使用模式匹配技术替代条件语句。
4. 重构变量 - 修改变量类型、名称和范围,以提高代码表达能力。