Photo by Blair Fraser on Unsplash

从头开发一个软件只是小儿科,改进一个程序才显真本事。《若为自由故  自由软件之父理查德·斯托曼传》

每个人都有从零开发软件的处女情结,但是事实上我们大多数时候都在维护别人的代码。

所以,别人写的代码如何糟糕,你再抱怨也是无意义的。

从内心中问自己,你究竟是在抱怨别人,还是不敢面对自己脆弱的内心。

老代码的意义

廉颇老矣,尚能饭否。

老代码的有很多缺点,如难以维护,逻辑混乱。但是老代码有唯一的好处,就是老代码经过生产环境的洗礼。这至少能证明老代码能够稳定运行,不出问题。

东西,如果不出问题,就不要动它。

老代码可能存在哪些问题

老代码的问题,就是我们重构的点。首先我们要明确,老代码中有哪些问题。

  • 模块性不强,重复代码太多
  • 逻辑混乱,业务逻辑和框架逻辑混杂
  • 注释混乱:特别要小心,很多老代码中的注释都可能不知道祖传多少代了。如果你要按着注释去理解,很可能南辕北辙,走火入魔。按照代码的执行去理解业务逻辑,而不是按照注释。
  • 配置性的硬代码和业务逻辑混杂,这个是需要在后期抽离的

如果你无法理解,请勿重构

带着respect, 也带着质疑,阅读并理解老代码。取其精华,去其糟粕。如果你还不理解老代码,就别急着重构它,让子弹飞一会。

等自己能够理解老代码时,再去重构。我相信在理解基础上重构,会更快,也更安全。

不要大段改写,要见缝插针

不要在老代码中直接写自己的代码,应该使用函数。

在老代码中改动一行,调用自己写的函数。

几乎每种语言中都有函数这种组织代码的形式,通过见缝插针调用函数的方式。能够尽量减少老代码的改动,如果出现问题,也比较容易调试。