看到这个“97xxxx”,一下子勾起我好多年前的回忆。那会儿,我还在折腾一个老系统,正好有个模块的编号跟这个差不多,就叫它“97项目”,具体的编号我记不清,但那个“97”开头我印象深刻。
折腾“97项目”的开始
那时候接到任务,要在那个老掉牙的“97项目”上加个新功能。听起来好像不难,对?可真动起手来,那叫一个头疼。
第一步,我去找相关的文档。结果?要么就是几页纸,语焉不详,要么就是 N 年前的东西,早就对不上。这情况,估计搞技术的老伙计们都懂。
没办法,只能硬着头皮去看代码。嚯!那代码,简直。各种风格混杂,注释几乎没有,变量名写得跟天书似的。我怀疑是不是好几拨人,连招呼都没打,各写各的,硬凑到一块儿的。
中间过程的挣扎
接下来几天,我基本就是埋在代码堆里。用最笨的办法,加打印信息,一步一步跟踪数据到底是怎么跑的。那时候调试工具也没现在这么好使,或者说那个老环境配起来太费劲,不如打日志来得快。
我还特地去请教几个公司的老前辈。有的已经转岗,有的说时间太久记不清,还有的给点建议,但听起来云里雾里的。还是得靠自己。
- 梳理逻辑:花差不多一个星期,才勉强把老代码的调用关系给画个草图。
- 编写新代码:尽量模仿着原来的“风格”写,虽然那风格实在不咋地,但为少出点幺蛾子,也只能这样。
- 联调测试:这才是噩梦的开始。把新代码合进去,一编译,嚯,冒出来一堆错误,都不是我写的模块报的错。
然后就是不停地修改、编译、测试。改好一个问题,又冒出两个新问题。那感觉,真就像是在一艘破船上,不停地堵漏水的地方,心里一点底都没有。
最终的“成果”与反思
折腾快一个月,总算是让那个新功能跑起来。测试那边也勉强给过。但我自己心里清楚,这玩意儿就是个定时炸弹,指不定哪天因为啥奇怪的操作就崩。
说实话,搞“97项目”那段经历,让我对所谓的“历史包袱”有血淋淋的认识。技术债这东西,欠着欠着,利息能把你压垮。
这也让我想起后来待过的一家公司。情况差不多,一个庞大又陈旧的系统,缝缝补补又三年。我当时提过好几次,说咱们得抽时间重构一下,或者至少把核心部分清理清理。领导每次都笑呵呵地说:“项目排期很紧,先保证业务上线,以后再说,以后再说。”
结果?“以后”永远没来。我在那儿待着,感觉每天都在走钢丝。后来实在受不那种氛围,就跳槽。听说我走后没多久,那个系统果然出个大问题,影响挺严重的。有时候想想,也挺无奈的,但也庆幸自己跑得快。
看到“97xxxx”这个数字,就想起这些陈年旧事。都是实践中踩过的坑,不值钱,但也算是个教训。干活,不光是把功能实现就完事,怎么让它活得久、活得也是门学问。有时候环境不给你机会,那该撤也得撤,人总得往前看嘛