返回

《重构》读书笔记序

前端

技术博客

重构:超越思想,掌握方法

引言

“重构”是软件工程中一项至关重要的实践,它能大幅提升代码的可维护性、可读性和容错性。然而,仅仅理解重构的思想是不够的,还需要掌握具体的方法才能有效实施。

重构的定义

重构是指在不改变软件可观察行为的前提下,改进其内部结构。其目的是让代码更易于维护、更易于阅读、更具容错性。

思想与方法

许多人认为,重构只是一种思想,不需要具体的琐碎方法。然而,没有具体的方法,重构就无从下手。仅仅拥有思想而不具备方法,就好比空有哲学而无实际行动。

常见的误区

也有人错误地认为重构可以掩盖设计中的缺陷。这是一种危险的误解。重构不是为了弥补糟糕的设计,而是为了改善现有设计的结构。如果代码的设计缺陷,就需要重新设计,而不是重构。

具体的步骤

重构的具体步骤可以总结为:

  1. 识别需要重构的代码。
  2. 根据重构规则进行修改。
  3. 验证修改后的代码是否符合预期。
  4. 循环重复上述步骤,直到代码达到预期的质量水平。

方法的应用

重构的具体方法众多,每种方法都有其特定的适用场景。例如:

  • 提取方法 :将重复的代码块提取为一个独立的方法。
  • 内联方法 :将小型且简单的辅助方法内联到调用它的代码中。
  • 引入局部变量 :将复杂的表达式或数据结构提取到局部变量中。
  • 移动字段 :将字段从一个类移动到另一个类中。
  • 推卸特性 :将某个类的责任推卸给另一个类。

示例代码

为了更好地理解重构方法,这里提供一个示例代码:

class Order {
    private int quantity;
    private double price;

    public double calculateTotal() {
        return quantity * price;
    }
}

这段代码存在一个问题,calculateTotal() 方法没有处理数量为零的情况。我们可以使用“内联变量”方法来解决这个问题:

class Order {
    private int quantity;
    private double price;

    public double calculateTotal() {
        if (quantity == 0) {
            return 0;
        } else {
            return quantity * price;
        }
    }
}

通过内联变量,我们避免了在需要时检查变量是否为零的重复代码。

结论

重构是软件开发中的一个强大工具,但只有掌握了具体的方法才能有效实施。通过遵循本文介绍的步骤和方法,开发人员可以显著改善代码的质量和可维护性。