有效地使用遗留代码我们为什么要改变软件?添加功能-添加一些行为,保持现有行为不变。修复错误-改变一些行为,保持其他行为不变。改进设计-更改代码结构,保持现有行为不变。优化资源使用-更改代码以提高资源使用率,保持现有行为不变。

检测现有行为的变化很重要!遗留代码是没有测试的代码。——迈克尔·费瑟斯

遗留代码困境

当我们更改代码时,我们应该进行测试。为了使测试到位,我们经常需要更改代码。

旧代码更改流程

  1. 更改算法。

  2. 确定变化点。

  3. 查找测试点。

  4. 打破依赖。

  5. 编写测试。

  6. 进行更改和重构。

我怎么知道我没有破坏任何东西?

规则超感知

  • 编辑单一目标。

  • 编辑保留签名。

  • 依靠编译器。

  • 结对编程。

接缝

接缝是一个可以改变程序行为的地方,而无需在该地方进行编辑。

特性测试

表征代码的实际行为。使用白盒测试来识别有用的输入值,并断言当前的实际结果。

拦截点

只是程序中的一个点,您可以在其中检测特定行为的发生。