陈默难得的轻松起来。每天的工作很清晰明确,带领技术人员对既有项目平台实施维护,制定下一年度的工作计划、以及对技术人员的年终考核评分。
同时,陈默每天都坚持与老周、李思涵、王宇同步联网收费系统升级改造项目的进展与风险点等信息,并做好相关信息的备份。这项工作陈默并没有对其他人说。
春节后,在集团的表彰大会上,张国华代表运营公司领取了安全生产先进单位、信息化建设先进单位两个集体奖,以及颁发给他的安全生产先进个人奖。
在随后运营公司年终总结表彰大会上,勾成获得了优秀管理者奖项。坐在台下的于剑和陈默两人,看着在台上领奖的勾成一副意气风发的样子,彼此看了一眼,机械的鼓了鼓掌。除此之外,数智公司再无收获。
值得一提的是,集团要求联网收费系统升级改造项目必须在六月底前完成发版上线,并且列入了新的一年对运营公司上半年的主要考核项之一。
在运营公司内部会议上,张国华强硬要求智通科技必须按集团要求执行,不许打折扣,并要求专项小组做好项目跟踪协调工作。接到通知的勾成、李明远等人虽然都面带难色,但也只能硬着头皮答应了下来。
三月中旬,陈清飞结束学习,回到了运营公司。
在回到单位的第二天,陈清飞就把于剑、陈默、勾成叫到办公室,详细询问联网收费项目的具体进展情况。当他听到陈默说他不参与联网收费项目的事情后,虽然他早就知道此事,但还是意味深长地看了勾成一眼,说了一句:瞎胡闹。打发走了勾成,陈清飞又安慰了于剑和陈默两人几句,谈话就这样在一片充满了温馨和关心的氛围中结束了。但在临走前,陈清飞拍着陈默的肩膀小声说的那句“离开项目专项组,对你、对我、以及对项目,未尝不是一件好事。你的能力我清楚,今后会有更大的任务等着你的”,叫陈默心里立刻起了警惕。
回到办公室的陈默,仔细回忆了一下在陈清飞办公室的所有细节,想着想着,一个大胆的念头出现在脑子里:难道他是想...这个念头一出现,就不受控的蔓延开来。越想越觉得有可能,越想也越觉得水变得越来越深了。
算了,那些都不是自己能掺和的,还是顾好自己吧。陈默如是告诫自己。但他决定从今天开始,每周都要详细排查一次联网收费项目的代码提交情况、bug修改情况、以及数据安全情况。力争做到心中有数据、手中有实物,以备不时之需。
年初的各种会议多的叫人心烦,大部分都是些没有意义的务虚会。领导的讲话也是千篇一律的‘务必重视’、‘严格落实’、‘提高政治站位’、‘做好廉洁自律’、‘降本增效’、‘精细化管控’等内容。在文山会海中,三月份就这么结束了。
4月3日,周三。
下午,陈默坐在自己的办公室里,开始排查联网收费系统的代码质量、进度、bug数、数据安全。
他先从于剑那里要来了工程组报上来的3月份月度总结报告。随后用老周提供的主管理员账号登录了服务器后台管理系统和git代码仓库。
越查,陈默越是气愤。不是没有问题,而是问题太多。距离集团要求的六月底,满打满算还有三个月,可是至少要提前半个月到一个月,部署到一个车流量少的收费站点做试运行吧。可陈默看到的结果,可以明确的说,基本是不可能的了。
数据库没有索引。一个简单的查询都需要走全表扫描,每次都要把整张表读进内存。
与外部公网IP的通讯依然时有出现,年前的事看来并没有得到彻底解决。
应用系统日志里,ERROR级别的日志密密麻麻,像一群蚂蚁在屏幕上爬行。
扣费模块里存在着空指针异常。
计费模块,频繁的创建对象,还不及时释放,导致内存溢出现象频发。
查询日志里,每条查询都要在3秒以上,很明显,都是索引的锅。
bug管理系统,登记的七百多条bug,没有一条修改记录。
代码仓库里,陈默随机下载了几个文件,满屏的所有数据库操作都写在Servlet的doPost方法里,没有分层,没有事务管理,SQL语句用字符串拼接,用户输入的参数直接拼进SQL里。
“用最简单的SQL注入就可以攻击。”陈默嘀咕着,“稍微懂一点技术的人,就可以篡改交易金额。”
再查看数据库表结构。表名是拼音缩写,字段名也是拼音,没有任何注释。有一个字段叫“je“,陈默猜了一会,才知道是‘金额’。字段类型是VARCHAR,长度五十。金额数据竟然用字符串类型存,也只是活见鬼了。怎么做数值计算?怎么做精度校验?继续查看相应的代码文件,进一步发现在计算的时候,使用Double.parseDouble进行类型转换。难道智通科技的研发人员就没考虑Double的精度问题吗?大学时候就学过的知识点,为什么在如此重要的系统里却忘记了呢?每次转换相差一分钱两分钱,积少成多,几千万笔交易,最终差额有多大?