我的同事们都疯了,因为我总是想重写已经运行正常的代码,因为我想用设计模式替换一些旧的设计。尽管我觉得这样可以改进现有的代码,但我感到有些偏执,并试图在任何地方使用它们,甚至用一个设计模式替换另一个。我的一些同事说,只要旧代码能够工作,就不要动它。
什么时候应该停止使用它们?你如何划分需要被更好的设计替换和不需要触碰的代码之间的界限?
我的同事们都疯了,因为我总是想重写已经运行正常的代码,因为我想用设计模式替换一些旧的设计。尽管我觉得这样可以改进现有的代码,但我感到有些偏执,并试图在任何地方使用它们,甚至用一个设计模式替换另一个。我的一些同事说,只要旧代码能够工作,就不要动它。
什么时候应该停止使用它们?你如何划分需要被更好的设计替换和不需要触碰的代码之间的界限?
如果代码正常工作且不需要关注-不要花时间/金钱更新它。除非财务上必须这样做,否则不要更新。只需确保所有新代码都是优秀的,并从现在开始慢慢消除此问题。
触碰代码会增加出错的风险,导致原本正常运行的代码无法正常工作。更好的做法是确保遗留代码已经通过单元测试覆盖。当需要修改代码时,可以重构到适合的模式,并确保代码仍然按设计要求正常工作。
当你进行重构时,可以考虑将其重构为设计模式,但是如果代码已经正常工作,没有必要仅为了设计模式而更改代码。
如果你是我的同事,我也会变得很疯狂。设计模式只是一些解决问题的一般性思路,并不是从山顶上用泥板刻下来的上帝之言。
不要强制进行重新设计 - 只有在需要时才对代码进行重构,特别是如果代码已经正常工作。你改动的越多,就需要测试的越多。如果没有现有的测试,这意味着(在完美的世界中)你需要编写测试。
相反,专注于以小块为单位清理代码,只做必须做的事情。随着进行,为接触到的类编写或更新单元测试,以确保一切都能正常工作。
对于个人项目,你可以尽情发挥。
但对于专业工作,请停止这样做!你正在浪费资源,而这些资源本可以用来完成所需的功能。此外,当你更改旧代码时,你确定已经将其100%翻译正确吗?如果没有,你会产生问题并可能引入新的错误。