Photo by Blair Fraser on Unsplash
从头开发一个软件只是小儿科,改进一个程序才显真本事。《若为自由故 自由软件之父理查德·斯托曼传》
每个人都有从零开发软件的处女情结,但是事实上我们大多数时候都在维护别人的代码。
所以,别人写的代码如何糟糕,你再抱怨也是无意义的。
从内心中问自己,你究竟是在抱怨别人,还是不敢面对自己脆弱的内心。
老代码的意义
廉颇老矣,尚能饭否。
老代码的有很多缺点,如难以维护,逻辑混乱。但是老代码有唯一的好处,就是老代码经过生产环境的洗礼。这至少能证明老代码能够稳定运行,不出问题。
东西,如果不出问题,就不要动它。
老代码可能存在哪些问题
老代码的问题,就是我们重构的点。首先我们要明确,老代码中有哪些问题。
- 模块性不强,重复代码太多
- 逻辑混乱,业务逻辑和框架逻辑混杂
- 注释混乱:特别要小心,很多老代码中的注释都可能不知道祖传多少代了。如果你要按着注释去理解,很可能南辕北辙,走火入魔。按照代码的执行去理解业务逻辑,而不是按照注释。
- 配置性的硬代码和业务逻辑混杂,这个是需要在后期抽离的
如果你无法理解,请勿重构
带着respect, 也带着质疑,阅读并理解老代码。取其精华,去其糟粕。如果你还不理解老代码,就别急着重构它,让子弹飞一会。
等自己能够理解老代码时,再去重构。我相信在理解基础上重构,会更快,也更安全。
不要大段改写,要见缝插针
不要在老代码中直接写自己的代码,应该使用函数。
在老代码中改动一行,调用自己写的函数。
几乎每种语言中都有函数这种组织代码的形式,通过见缝插针调用函数的方式。能够尽量减少老代码的改动,如果出现问题,也比较容易调试。