重构改善既有代码的设计
重构是指对软件内部结构的一种调整,目的是在不改变外部行为的前提下,提高可理解性、降低修改成本。通过重构,可以重新组织代码,重新清晰地体现程序结构和进一步改进设计。重构技术可以帮助程序员找到程序错误、提高编程速度、增加新功能、修补错误、Review 代码时均可一并重构。
为什么要重构?重构可以助你找到程序错误、提高编程速度、提高设计和编码水平、增加新功能、修补错误、Review 代码时均可一并重构。何时重构?可以在增加新功能时一并重构、修补错误时一并重构、Review 代码时一并重构。
重构与设计彼此互补,良好的设计是重构的目标,重构弥补设计的不足。重构使得设计方案更简单,如果选择重构,预先设计时候只需找出足够合理的解决方案,实现的时候对问题会进一步加深,此时可以重构成最佳的解决方案。
重构可以避免过度设计,设计人员需要考虑将简单方案重构成灵活方案的难度。如果容易,只需实现简单方案。
常见的代码坏味道包括:
1. 重复的代码(Duplicated Code):可以通过提炼为一个方法、将重复的代码提到父类中、将相同部分构成单独函数、或者用 Template Method 设计模式来解决。
2. 过长的函数(Long Method):可以通过将独立的功能提炼成新函数来解决。
3. 过大类(Large Class):可以通过将过大类的功能拆分成多个功能单一的小类来解决。
4. 过长的参数列(Long Parameter List):可以通过将参数列表用参数对象替换来解决。
5. 发散式变化(Divergent Change):可以通过将类拆分成多个,每个类只因为一种变化而修改来解决。
6. 霰弹式修改(Shotgun Surgery):可以通过将类似的功能放到一个类中来解决。
重构是对软件内部结构的一种调整,可以帮助程序员找到程序错误、提高编程速度、增加新功能、修补错误、Review 代码时均可一并重构,是一个进阶的学习过程。
- 1
- 2
前往页