你的技术债务解决了吗?试试重构

2021-01-29 09:53:00
LuLu
原创
4703
摘要:重构并非银弹,没有什么银弹流程或实践可以让项目完美运作。

重构是在不改变软件可观察行为的前提下,改善其内部结构。重构的目的是使软件更容易被理解和修改。

1、为什么要重构?

  • 重构可以减少技术债务

重构让代码更清晰且容易理解,以便让其他程序员也能更轻松地维护和添加新功能。重构可以避免我们将时间精力过度花在理解系统、寻找重复代码上。

  • 重构改进软件设计

如果没有重构,程序设计会逐渐腐败变质。重构很像是在整理代码,经常性重构可以帮助代码维持自己该有的形态。

  • 重构使软件更容易理解

刚开始进行重构时,虽然代码可以正常运行,但结构可能不够理想。但只要在重构上花一点时间,就可以让代码更好地表达自己的用途。

  • 重构帮助找到Bug

通过不断重构,清楚掌握代码结构,有助于我们快速找出Bug,进而帮助我们更有效地写出更好的代码。

2、何时重构?

团队不需要单独拿出大块时间来做重构,也不需要为了重构而重构,重构应该随时随地进行。

  • 三次法则

当我们第一次执行某操作时,只管去做,即便代码有待提升;

第二次做类似操作时,代码仍然有待提升,但依旧可以完成;

第三次做类似事情时,请开始重构。

  • 添加功能时重构

为软件添加新功能时,通过重构可以帮助我们更好地理解代码。同时,当发现代码设计无法支持我们添加新功能时,也可以用重构来弥补它。通过重构,使得新特性的添加更顺畅、快捷。

  • 修补错误时重构

调试过程中运用重构,主要是为了让代码更具可读性,以帮助我们找出Bug。比如当系统弹出错误报告时,这其实就是需要重构的信号,因为显然代码还没有清晰到能让我们迅速发现Bug。

  • 代码评审时重构

重构可以帮助我们复审别人的代码。重构前我们可以先阅读并理解代码,提出一些建议。当有新点子时,可以考虑通过重构去实现它,这不仅有助于我们提出更多恰当的建议,还能使代码评审得到更具体的结果。

3、两顶帽子

Kent Beck 提出了“两顶帽子”的比喻。使用重构技术开发软件时,先戴上实现功能的帽子,在测试的辅助下,快速实现其功能;再戴上重构的帽子,在测试的保护下,通过去除冗余的代码,提高代码质量。

 

重构也并非银弹,没有什么银弹流程或实践可以让项目完美运作。欢迎大家关注极限编程系列往期视频,了解更多极限编程实践方法 。