如何重构?
重构应该作为一系列小的更改来完成,每个更改都会使现有代码稍微好一点,同时仍然使程序保持工作状态。
正确完成重构的清单
代码应该变得更干净。
如果重构后代码仍然不干净......好吧,对不起,你刚刚浪费了一个小时的生命。试着弄清楚为什么会发生这种情况。
当您放弃使用小更改进行重构并将一大堆重构混合到一个大更改中时,通常会发生这种情况。所以很容易失去理智,特别是如果你有时间限制。
但是,当使用极其草率的代码时,也会发生这种情况。无论你改进什么,整个代码仍然是一场灾难。
在这种情况下,值得考虑完全重写部分代码。但在此之前,您应该已经编写了测试并留出大量时间。否则,你最终会得到我们在第一段中谈到的各种结果。
不应在重构期间创建新功能。
不要将重构和直接开发新功能混为一谈。尝试至少在各个提交的范围内分离这些进程。
重构后,所有现有测试都必须通过。
在重构后,测试可能会崩溃:
-
重构过程中出错。这是一个明智的选择:继续修复错误。
-
你的测试水平太低了。例如,您正在测试类的私有方法。
在这种情况下,测试是罪魁祸首。您可以重构测试本身,也可以编写一组全新的更高级别测试。避免这种情况的一个好方法是编写 BDD 样式的测试。