第十六章高志强给我的难题
机房的日光灯管发出嗡嗡的声音。
趴在地上的时候给打印模块换色带,拆掉了一半的机器,一颗螺丝滚到了桌子下面,她伸手去摸,手指刚碰到的时候,高志强办公室的门就“哐”地一声打开了。
报表月末由谁来负责
嗓门很大,整栋楼都能听到。一不小心螺丝就会滚出去。
高志强站在过道里,手里拿着话筒,在听筒那边有一个男声在说话,虽然距离很远,但是还是能听出对方很生气:
高经理,你们新系统把我们店里四千六百多块钱的账目吃掉了十六件货物的钱!我和财务部门已经争论了两天,你决定怎么处理吧
"吴老板,吴老板您消消气——"高志强赔着笑,"三天,三天之内我一定给您个说法!"
打完电话之后。把话筒摔到机座上,在过道里喊道:“报表月结谁在跟?”周老?小宋?阿珍
没有人回答。
老周低下头看报纸,翻得十分起劲。小宋把鼠标点在电脑上,啪啪地响个不停。阿珍拿着杯子去接水的时候从他的身边走过,但是并没有停下来。
高志强再问一次的时候,脸上的笑容已经快要支持不住了。
这么大一个组,每个月的结账工作没有人做过吗?指了指周围说,“二期上线的时候报表不是都还好好的吗?”客户对不上账的时候,总得有人查吧
老周翻过一页报纸之后,慢吞吞地说道:“高经理,报表月结不是由你亲自负责的吗?”名单上的负责人是高志强(兼任)。
屋子里安静了大约两秒钟的时间。
高志强脸上的肌肉微微一跳,说:“我看着归我看着,下面总得有人干活。”“一天到晚开了那么多会,还能一个一个字段去查?”
他把目光转到了房间里面。老周、小宋、阿珍一个个都低下头去。最后来到机房门口。
她站了起来,手上还有色带油墨,把裤子上擦了一下。
高志强笑着说:“小陈。”来
她走到那边去了。机房门口到过道也就几步路,但是她走得较慢。她知道接下来会发生什么,这样的活儿,老周、小宋都不干,轮到她的时候,因为她是最好的。
打印模块做好了,客户表扬你的时候我都记在心里。高志强拍了拍她的肩头说,“报表部分和打印模块是挨着的,都是给客户出单子的,你比较了解。”月结出了点小状况,跟着去看看。
“有啥问题?”
并不是什么大问题。高志强说,“客户月底对账时,数字相差了四千六。”就是那么一点点,找到之后补上就可以了。三天的时间还长吗
四千六百。
她心中大概估算了一下。四千六可以供许玲姐在石牌村摆一个月的摊位,也可以支付四个月的房租。吴老板打电话的时候火气这么大,并不是“几笔”所能解决的。
我还没有看报表代码。她说。
所以让你练习一下。高志强笑呵呵地说,“年轻人多学一些东西,没有坏处。”打印都搞定了,报表还能难到哪里去
转身回到办公室,在门口又停了下来,但是没有回头:
小陈,试用期考核很快就会开始了。这个月要好好的表现
门关好之后。
她站在这里,把手上的油墨搓掉了,黑色的一层也被她搓掉了。
老周凑过来小声说道:“小陈,那段月结代码是从哪里来的?”
她摇摇头。
从旧系统中提取出来的。老周说,“年初的时候拆表,高经理拍板说不要丢失数据,全部拷贝过来。”编写这段代码的人已经离职很久了,没有人能看懂。我和小宋都查过了,但是没有查清楚。
翻不清楚的话就早点说。小宋在一旁嘀咕道,“这下好,烫手山芋有人接手了。”
老周瞪了他一眼说:“少说两句。”
她坐回自己的座位上。
桌上放着一份关于进销存二期项目的分工表。报表月结栏中,负责人三个字后面跟着的是“高志强(兼)”。她看了“兼”字两秒之后就把纸翻过来并压住了。
打开月结程序的代码。光标逐格向下移动,到了最上面一行的注释处,上面写着:
月结汇总——系统拆表迁移,不要改动。
“勿动”两个字写得非常工整,好像一个程序员临走之前留下的代码一样。
往下看300多行之后,她就明白老周所说的“翻不明白”是什么意思了。
这个逻辑很绕,把每天的销售单复制到一个临时表格里,然后再把数据填入月结表中。中间嵌套了三层循环,并且每一层都有条件判断。使用的变量名都是拼音缩写,比如hqd、cjr、bdr等,但是不知道是什么意思。她拿起笔来抄写了一半的纸张,越抄越乱,纸上画满了各种各样的箭头,好像一团打结在一起的线头。
白天看代码,但是没有发现什么问题。
第二天一早,她没有去上班,而是直接去了吴老板的门市。
店员妹子认得她,远远地就叫:“靓女!”是来修上个月结的账吧?仓库大姐已经骂了三天了
仓库大姐叉着腰站在柜台后面,面前放着一叠手写的单子:“我告诉你,我这里的单子没有少一张!”电脑打印出来的就是缺少的!它自己把货物吃掉了吗?
柜台上的日光灯很亮。把大姐做的手写台账拿过来,再调出门市销售记录,一一核对。台帐纸已经变黄并且卷起来了,手指一碰就能摸到圆珠笔压出的凹痕。比到眼睛发酸的时候就抬起头喝水,然后再继续比。
到了中午的时候,她就在一页台账上停了下来。
13号。晚上8点40分最后一单:春装连衣裙2件,360元。手写的字比较潦草。
调出当天的销售记录,两件连衣裙在系统中登记的时间是14日9点12分。
她翻到第十九页、第二十五页。也是一样的。晚上收工前的单子,第二天早上才被补录到电脑里面去。
补录的单子,单号排在最后,系统里录入的时间是第二天。
月结代码是按照输入的时间来划分天数的。十三号晚上卖出的商品,在十四号早上才被录入到电脑中,所以在月结的时候就计入了十四号。
两天的时间加起来的话,账目对不对呢?
将这几天需要补录的单子全部筛选出来,一共是十六张。总共四千六百,分毫不差。
找到。她说的是。
仓库大姐走过来问道:“是什么东西?”找到的是什么呢
账目上的差额在补录的单子里面。她说,“十三、十九、二十五号晚上收工前的订单,第二天早上才输入电脑。”老程序按照录入的时间来计算账目,把这几天晚上卖出的钱全部算到第二天去。
店员妹子一呆,摸了摸头说:“哎呀,我想起来了!”十三号晚班是我在收档,人多,我把单子记在本子上,第二天早上才打电脑——原来是坏在我的手上
并不是因为你不好。她说,“老程序不认补录的单。”
仓库大姐拍了下大腿说:“我怎么没想起来呢!”并不是我们少记了,而是这个破机器漏算了
她没有在门市待太久。回到家中之后,她又把修改的方法默念了三遍,即不按照录入的时间来切分,而是按照单子上所写的销售日期来进行切分。卖出去的时候是什么时候,就归到那一天去。
逻辑并不难懂。
最难的是三百行麻花,她要把整个麻花都捋直。
那天晚上她没有离开。
机房里的日光灯发出嗡嗡的声音。把月结的那段代码打印出来铺在桌子上,用红笔一段一段地标注:这段是抄单,这段是判断,这段是灌数。纸张不足的时候就把代码背面也写上字。标到后半夜,眼皮打架的时候就去水房洗了把冷水脸,回来之后继续标。
保安大爷端着搪瓷缸子路过,看见她又坐在那儿,摇了摇头:"姑娘,你这是熬了一宿。"
好的。大爷你睡吧,我去把门锁上。
大爷没有离开,站在门口看了两眼之后就把缸子里的热水倒了一杯给她:“喝点热水吧。”不可以因为年轻就拿自己的生命去冒险
手里拿着搪瓷缸子,里面装的是热水,手心被烫到了。低头喝了一口,辣辣的,是姜茶。
感谢大爷。
大爷摆了摆手就走了,嘴里嘟囔着:“现在的年轻人比机器还耐熬。”
天刚蒙蒙亮的时候,就把麻花理好。
她在原来的代码基础上没有做任何修改。把月结的部分全部删掉,再写出一段新的干净的内容:按照销售日期归天,先算日结,再累月结,一步到位。新代码只有不到八十行,比原来的少了四分之三。
写完之后并没有马上提交。她把二月份的数据反覆地测量,测完二月又测一月,再调出去年年底的单子来试。每次测试的时候,她都会在本子上记下日期、单据类型以及结果是否正确。第五页的测试记录写完后,她换了一支笔继续写。
三天的时间,她用了两天半。
第三天早上,她拿着打印好的测试结果去找高志强。
修改完毕。按销售日期归档,补录单也不会出现遗漏的情况。二月份所有数据我都测试过,和门市台账完全一致。
高志强接过来看了看,并没有仔细看,脸上带着笑容说:“好呀,我就说嘛,小陈挺能干的。”辛苦辛苦
把测试记录放到抽屉里之后说道:“好的,我来安排上线的工作。”
她想说些什么,但是又吞了下去。
到门口的时候又停了下来:高经理,我修改的是月结主程序上线的时候,请注意一下跑批脚本的路径——不要用旧的
了解了。高志强摆了摆手说,“我做了这么多年软件,还会不会上线?”
她回到自己的座位上。
高志强叫小宋去服务器处换程序。她听到小宋在机房说:“高经理,要换哪一个目录?”
原来的地方。原来的地方
站起来想说些什么,但是机房的门已经关上了。她又坐了下来,心里的不安并没有因此而消散。
上线当天晚上,她回到出租屋的时候,手机就响了。
高志强的声音很压抑,一字一句地说:“陈小满。”你的那个月结又没有完成
她拿过手机之后就没有再开口。
客户刚刚打来电话,说明天一早就要交账了,跑批出来还是四千六!高志强在那边骂了一句,“你改的东西是什么玩意儿?”上线就出问题
“以前。”
快,吴老板都在呢
打完电话之后,她看了一眼时间,现在已经十一点四十了。穿好衣服就出去了。三月的夜晚,冷风穿过了她的衣领,使她缩了缩脖子。小跑起来,鞋底踩在水泥地上,一下又一下。
到了门市的时候已经快十二点了。
吴老板披着一件外套坐在柜台后面,脸色很难看。高志强已经到了,站在打印机旁边,见到她进来后,说话的声音立刻就大了许多:
小陈来了!小陈,你自己看看你修改的程序怎么样?我已经告诉你很多次了,新功能上线一定要小心谨慎!“你倒好,拍胸脯说没问题——”
他说的是对吴老板说的话。
她没有接话。走到服务器前面坐下。
屏幕亮了之后,灯光照射到她的脸上。先看跑批日志,一行一行往下看,到了今天晚上十点钟的时候看到调用的文件名。
停了下来。
那条路她很熟悉。不是她修改的程序,在年初拆表的时候拷过来的一个老目录,文件名前面有“bak”三个字母。
她向上翻阅日志。昨天、前天、大前天。连续七天,每天晚上十点钟的时候,“bak”目录中的老程序就会运行一次,并且按照原来的方法将数据写入到月结表中。
打开跑批脚本,白纸黑字,调用路径是那个老目录。文件修改的时间在去年11月份的时候。
她又调出了三天前她提交的新程序,文件放在另外一个目录中,安安静静地在那里,没有被调用过。
对屋里的小宋说:“小宋,你下午把程序放到哪里去了?”
就是高经理所说的那个地方。小宋从门市后面探出头来,说,“D盘的bak……”
这个目录是做什么用的,你看了吗
“没……高经理说换那儿就可以……”
高志强的脸色已经很难看了:“是什么意思?”程序没有被替换上去吗
将笔记本翻转之后,屏幕就朝向了屋里的每一个人。
更换为新的。她说,“但是今天晚上跑批用的不是新程序。”
她指着日志里调用路径的那一行:跑批脚本指向的是bak目录。这个目录是年初拆表的时候从老系统拷过来的。里面的程序还是去年11月份写的,比我来公司的时间还要早。
屋子里稍微有点静。
吴老板站起来走到屏幕前看了一会儿之后,又问她:“靓女,这次是不是你又把字写错了?”
并不是我自己写错了。她说,“我写的新的程序在这里——”她指着屏幕上的另一个目录,“三天前交上去的。”但是跑批脚本每天凌晨调用的是老的那个。老程序按照录入时间切分账目,补录单会丢失;我修改后的程序按销售日期切分账目,不会丢失。今天晚上跑批用的是老程序,所以账目还是有差额的
将两个文件的修改时间并排起来。老文件:去年11月份。新文件:三天之前。逐字逐句,一清二楚。
高经理让我修改月结程序,我已经修改好了,并且测试过了。她说,“上线之后程序没有找到跑批脚本所指定的位置。”这个锅不能由我来背。
吴老板不再开口了。
回头看了高志强一眼。
高志强站到打印机旁边,脸色时而发青时而又变得苍白,张着嘴想要说什么,但是没有说出来。
那么现在怎么办?吴老板问她。
将脚本修改之后,用旧的锁住,再重新运行一次。
说完之后就开始做了。改变路径,把老文件的后缀改成新的,然后停止原来的程序,并且重新运行新的程序。
凌晨1点40分左右,跑批的工作已经结束。调出月结表与柜台上的手写台账一一核对。
数字咬住。分毫不差。
仓库大姐本来都已经睡着了,被电话叫醒之后披着衣服跑过来,看到对上的账目之后眼圈都红了:“对上了!”“对上了”,我就是少记了一下
吴老板把那沓台账收好之后,拍了拍她的肩膀说:“靓女辛苦你了。”在深夜的时候
“应该的。”
新的程序从明天开始就可以使用了,是这样吗?吴老板说,“以后月结就不会出现了。”
不可以。跑批路径我已经修改好了,老程序也已经停止运行了。明天晚上我会再看一遍的
好的。吴老板搓了搓手,瞥了一眼站在打印机旁边的高志强,后半句没有说出来,只哼了一下。
高志强脸上的肉抽动了一下,挤出一个笑:“吴老板,这事是我管理不善,回头我一定……”
好的。吴老板摆了摆手说,“账目相符就可以。”大晚上的,大家都不要站着了
高志强讪讪的答应了一声,转身就走。
人已经走完了。她又回到服务器前面把跑批日志从头到尾看一遍,确定明天凌晨调用路径没有问题之后才关机。
门市外面的路灯下,店员妹子追了出来,给了她一瓶可乐:靓女,喝点水吧。今天晚上你所付出的努力,不亚于我们平时工作的努力
她拿过可乐没有喝。罐子外面是冰凉的,放在手心里。
回到出租屋里时已经快三点半了。
许玲睡得很熟,打呼噜。她轻轻的洗了脸之后就坐到了桌子旁边打开了笔记本。
她写的:
2000年3月份进行月结对账之后还差4600元。原因是跑批脚本仍然指向拆表的时候拷贝过来的老版本程序。新版按照销售日期来入账,并且已经测试完毕。客户的吴老板和仓库的大姐都在场监督。上线的时候程序没有换到跑批脚本所指定的位置上。
在第三行的时候她停了下来,把这一行划掉之后又重新写了一遍:
上线当天晚上,跑批还是用的旧版文件,新版本文件没有用到。
写完之后,她看了两行字一会儿。纸上写的字工整有序,就像以前她在烟盒纸上面记录需求时写的那样。
合上笔记本之后放到抽屉最里面和吴老板的验收单放在一起。
她把灯关掉之后就躺下来了。
在黑暗之中,她睁着眼睛想要笑,不是因为高兴,就是觉得这一晚好像又有所领悟。
林一苇的话在心中转了一圈:你自己的东西,要留好证据。
她留下了。留下的东西更多一些。
第二天一早她就来到公司,打开电脑之后,就弹出了消息。
右下角的小企鹅也是一闪一闪的。林一苇的照片。
打开之后显示的内容为:
做得很好。
只有四个字,除此之外没有其他的内容。
她看了那四个字很久。手指放在键盘上想要回一些东西,但是又不知道该回些什么。打了一个字之后就发送出去了:
“嗯。”
发完之后她就把窗口关闭了,打开代码继续看今天要修改的地方。
小企鹅在屏幕右下角又闪了一下。没有点击进去,但是嘴角动了一下。
窗外三公里以外的地方,那栋楼在阳光下静静的矗立着。
想到这四个字的时候,胸口就会感到有一股暖意,好像怀中抱着一瓶没有开启的可乐一样。
那罐可乐放在桌子上,一直等到下班的时候都没有舍得喝。
