老系统维护有感

近日,由于广告平台组开发人员全部离职后出现了一个以前老系统维护的问题,原有的广告系统(采用java开发)与现有公司OA系统(采用.NET开发)有一个接口互通功能,能在广告系统中生成数据并同步到OA中完成审核工单功能。本来这个功能是很好的,因为,不同的系统,不同的权限,接口打通后不需要再次在OA中申请了。后来广告系统开发人员都已经不在公司了,而现有的OA系统因为切换域名端口,导致以前的功能同步推送无法成功。该系统由我们接手后一直无法找到根本原因,没有头绪,即使在离职老员工的指导下,仍然无法找到问题的根本原因,多方排查后,发现是这个HTTP请求无法发出,最终定位到端口更换带来的问题。

而此时,更大的问题来临了。因为java开发对我们拍簧片程序员而言还是比较困难的,而在线上跑的java程序已经被编译,其代码更是无法修改调试,修改公用配置文件也无法起作用后,最终上报领导,决定指派另外一个部门的java组长来帮助我们,这个组长还是蛮厉害的,使用了反编译软件找到jar包,弄出了以前的.java源代码,然后自己重新书写后,再次编译为.class放入jar包进行替换,后重启了Tomcat,然后功能就可以了。

我们中间还尝试过几次更改请求url都没成功,发现原因是请求接口的url放在了多个class里没有采用配置文件读取,父类本来书写了,子类又去覆盖了,调用地方也有声明,发现到处都是写死的url,导致维护和修改起来十分麻烦,最终java组长一一替换后,进行成功编译,然后通过运行了,解决了这个问题。

启示:开发人员最好不要这样操作,请求的统一资源路径都放到配置中去,如果不能,放到父类中去,再不能,放到模型中去,最后不行,你定义为常量也可以,不要到处写这个请求域名端口url等等,也许某些业务当时看是不会修改的,可谁也难以保证,随着岁月时光的流逝,系统会面临各种变化和需求,所以,Linux中一切皆文件,开发中一切皆变量,系统中一切皆配置,我们有必要进行时刻的警醒自己!

原文地址:https://www.cnblogs.com/lizhaoyao/p/10218060.html