背景:公司应某电力部门x系统要求,定期完成系统升级工作。
原数据库MySQL版本4.0.25升级目标数据库 5.7、Servlet2.3 升级Servlet3.0;部分代码年代将近15个年头
重点将遇到的 几个问题:
数据:
1、部分数据表损坏、在不确定是否包含有效数据的情况下逐个还原、好在问题不大;都对损坏的表进行了修复;
2、数据库脚本不兼容,低版本数据库使用TYPE=xx,用来确定表所属用的引擎;高版本则使用ENGINE来确定;InnoDB为默认使用引擎;
Servlet容器:
1、因使用匿名servlet形式;造成升级失败;
原因 Tomcat7之后不在提供对org.apache.catalina.servlets.InvokerServlet支持、
解决办法:逐个添加Servlet-Mapping、或使用servlet3.0 注解实现servlet映射功能
代码:
1、编程陋习、在实体类中参杂业务逻辑、增加排查难度
2、数据乱码、逐个接口跟踪调试;嵌套页面间URL使 用GET方式传参未进行处理
3、代码冗余度高,包含大量无效的声明、引用、对象创建等
4、测试代码与生产代码混杂
经过这次事件、暴露部分程序员确实存在不死进取的现象:
暴露如下问题:
1、因随意复制数据文件造成表损坏,未及时修复数据
2、Servlet版本跨越,造成程序无法启动,未进行思考而盲目复制旧版本配置
3、缺乏应有的耐心, 在无法解决问题的情况下未上报、而做与工作无关是事
4、做事犹豫、缺乏应有的判断力
5、执行力一如既往, 一拖再拖的方针根深蒂固,对于熟悉该系统的老员工,应该在一到两个工作日解决问题并完成相关工作、然并x