编程经验:重构代码的7个阶段
第一阶段 - 绝望
当你开始查看要重构的模块时,你可能会觉得很简单。只需修改几个类、函数,调整一些逻辑就可以了,看上去似乎没什么大不了的问题,一两天就能解决。但是当你开始着手重构后,你会发现这个模块的问题比想象中的更复杂。你会遇到难以理解的文档、奇怪的命名方式,以及与代码不符的注释等。你会感到绝望,意识到这个任务可能需要一周甚至更长时间才能完成。
第二阶段 - 找最简单的做
面对绝望,你可能会开始寻找一些简单的解决方案。例如,重新命名几个函数、移除代码的障碍,添加常量来消除魔法数字等。尽管这样做并不能完全解决问题,但至少不会让代码变得更糟糕。
第三阶段 - 再次绝望
然而,接下来的情况可能让你再次陷入困境。你会发现这些代码中的问题无关紧要,修复它们对整体没有太大帮助。你意识到需要重写所有的东西,但是时间不允许。于是,你只能部分重写一些不会花费太多时间的部分,以便更多地重用老代码。虽然不完美,但至少可以一试。
第四阶段 - 开始乐观
在尝试部分重构几天后,你可能会发现进展缓慢,但至少你知道应该将代码改成什么样子了。你锁定了需要修改的类,并且充满希望,觉得这一切都是值得的。你内心重新燃起了斗志。
第五阶段 - 快速了结
然而,在此时,你可能会发现已经花费了太多的时间,情况变得越来越复杂,让你感到不安。你开始怠慢文档,试图找到一个捷径来重写旧代码,采用了一些简单、粗暴、快速、有点肮脏的方法。尽管并不完美,但你只能这样去做。接着,你运行测试并发现测试报告上几乎全部是红色,几乎所有的测试都失败了。你恐慌了,迅速修复代码使其通过测试。你拍拍胸口,告诉自己没问题,然后提交代码。
第六阶段 - 修改大量的Bug
你的重写虽然通过了测试,但与新代码不太匹配的一些单元测试并不能很好地覆盖所有情况和边界。因此,在之后的几周甚至更长时间里,你不得不修复越来越多的bug,这导致你的设计和代码变得越来越难看。尽管代码不像最初那么完美,但你依然觉得比起一开始要好一些。这个阶段可能历经数月。
第七阶段 - 觉悟
在经过6个月的时间后,你的重构模块出现了一个严重的bug。这让你觉得重构的模块变得更加糟糕。你发现问题是因为当初的设计与现实不符,并且意识到被重构掉的那段旧代码其实并没有想象中那么糟糕,它考虑到了一些你没有注意到的事情。此时,团队中有人提出重构或重写这个模块,但你选择保持沉默,希望他们能在几个月后自己觉醒。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。