Answers:
对于任何遗留代码库,为自己做好心理准备的正确方法是从为其编写单元测试开始。
不管它是否烂,您首先需要有信心能够在不损坏任何东西的情况下进行更改!
我无法告诉您我说过几次“哦,这是完全错误的”,然后将其重写,然后找出了为什么要这样编写代码的困难方法。通常,这是一些非显而易见的未写/未记录的要求。至少在我当前正在处理的旧代码中,这是正确的。
如果有时间,我会攻击它并杀死编写不好的代码。
这是战争。
我总是认为丑陋的代码是经过多次调试的代码,并且有许多细微之处在粗略的检查中并不明显。如果要替换它,或者进行深刻的重新设计,则需要确保我完全理解代码的各个方面。如果我没有时间进行深入了解,则必须采取最小风险的方法,并进行最小的更改以实现目标。
通常,我会做一个小小的修正/更改,并为以后的开发提出一个功能,该功能可借以深入了解事物并重构整个事物。然后,我会尽力忽略代码,直到该功能最终出现在路线图上为止。
有了经验,就可以判断什么时候代码真的很糟糕,什么时候才以不同的风格编写代码。如果它功能完善且可维护,并且具有良好的自动化测试覆盖率,那么它还不错,您只需要敞开心mind。您可能会学到一些东西。错误的代码不起作用且不可维护。
这是一些真正错误代码的标记:
缺乏自动化测试并不意味着代码不好,但这意味着项目很糟糕。
这些都不是滋味。这些做法使程序维护更加昂贵。
您如何做好准备?
接受这样的事实,即在新代码库上成功工作需要花费一些时间。如果它是“完全可维护的”并且测试覆盖率很高,则花费的时间更少,但仍然不会立即发生。如果代码不好,那么我要做的第一件事就是警告利益相关者,它的状态不好,并且初始进度会很慢。如果他们对此表示怀疑,那么我将通过向他们展示实际代码中的问题样本并解释其与行业最佳实践的差异来支持我的主张。