这一次,绝影发了火,他厉声说道:“什么技术到家不到家,老子最讨厌那些会个‘select’就说自己精通数据库,能背几条指令就说擅长汇编的人。什么应该做什么不应该做什么,跟你说,以前老子和BOSS Liu还帮别人修过电脑呢!出去给老子改BUG去!”
先看绝影心情还好,Bug Yang好不容易鼓起勇气说出了他的心声,哪料到绝影现在突然发这么大火,他徉徉地说:“不是说不骂人的吗?”边说边退出了办公室。
现在的年轻人啊,就是这么自以为是。BUG?BUG在哪里?我没看到BUG就是没有BUG。牛人?牛人在哪里啊?我没看到牛人我就是世界上最牛的人。技术?这技术有什么用?我没看到这技术的用途它就是没用。抱着这种思想,于是一天只想着我要做什么,根本就不考虑我应该做什么。久而久之,胆子越来越大,大话越来越牛,技术反而越来越粗糙。
泉州的医院还是经常来电话,还是指名点姓要绝影接,现在是慢慢开始抱怨启动速度越来越慢,但他们毕竟还很客气,绝影是什么人?在他们看来,就影就是这个体检车数字化项目的总工程师。对总工程师,能不客气么?所以,出了问题就要先从自己身上找原因,一段时间过去,能找的原因都找完了,可速度还是越来越慢。到时候,终于忍不住试探着说:“绝工啊,那速度的问题,你看看能不能想办法帮我我们解决啊,这数据量一大,实在太慢了,再这样下去,基本上就没法用了啊。”
绝影表面上打着哈哈道:“嗯,我下来再调研一下,争取近期给你们拿出个方案。”
这样说其实是有所保留的,其实绝影知道自己根本算不上什么工程师,就算有这个技术也没这个资历,什么工程师啊,教授啊,做起事情来当然可以稍微怠慢一下,毕竟人家肚里有东西,干起事情来有效率,一天解决别人一周的问题。就算实在什么也没有就靠忽悠起家的,至少人家后面有个大后台!
绝影什么也没有,所以必须自己做好。
其实EB中存在的问题他早就能考虑到,那个HTML中的Table全部是用JavaScript生成,等到数据量成千上万的时候,单是生成这个列表就是件很浪费时间的事情。
可事情比原来想像的还要糟。以前的设计还是存在一定问题,EB启动的时候会先将数据库中所有数据读到内存以便匹配指纹,数据量小还行,这数据量一大,就靠那无线网络的传输,只怕都要等个三五分钟,再加上超大的内存占用,程序运行起来,肯定慢得像乌龟。
问题摆在面前,就得赶紧解决,别人那体检车,每天体检两次,光DR图片大小就得突破一个G,要是因为软件问题停工个一天两天,这损失他承担不起。
于是赶紧开会,虽说火基本上已经烧到了眉毛,他还是平静地说:“怎么样啊?小扬,BUG改得怎么样了?”
“改完了,这次是真的没BUG了,我检查了好多次了,这次保证肯定绝对可以用了。”
“放屁,你那是‘暂时没有发现BUG’,我跟你说了好多次了,你没发现BUG不代表BUG不存在!”
“是是是,暂时没发现。影头,可以做其它的了。”
“好,你不是说要做大CASE吗?EB的代码你也看了,算大了吧。咱们现在就来做这个。先来修改一下EB的问题,主要有两个:一、启动速度太慢,我想到的解决办法是启动时采用多线程方式,在后台读取数据,不再读取数据库中所有的数据,仅读取体检号和指纹,匹配指纹的时候再通过体检号去数据库查询其它信息。因为他们体检的时候很少用到指纹仪,虽然记录多,但只有一个体检号,占用的内存也不大。二、各个页面的显示速度太慢,特别是体检人列表这一页,主要是因为页面的显示用的是JavaScript,效率不高,而且是把所有记录都显示到同一页。当时我们设计那页的时候还不知道除了JavaScript之外还能用什么办法,但随着CASE的进行,到后期我们已经掌握了IHTMLDocument2和IHTMLElement接口,用这两个接口来操作性能应该要高得多。另外还要分页显示,比如一页就查30条记录,要再看其它的,就点下一页。就像google,随便输入个热门关键字检索结果动辄几十万上百万条,要是全部都显示到一页,光是生成个页面都得等死人。这个我后来也调研了,用‘select’的‘top’子句。”
绝影在上面把自己的想法一股脑讲给下面,基本上把问题产生的原因和解决方法都描述得清清楚楚,就是没差写出具体代码了。Bug Yang他们在下面表面上听得认认真真,实际上他一直在热血沸腾兴奋不已,根本就没在乎他讲的什么。等到他话音还没落,Bug Yang立即踊跃而上,说道:“影头,说那些都没用,直接告诉我让我做什么就行了!”
“老实点!再跳,又让你回去改BUG。”
这么说,Bug Yang又努力让自己安静下来。
“启动部分我来做,你和小唐去解决第二个问题,小唐做查询和分页显示,你把所有JavaScript的调用改成IHTMLDocument2和IHTMLElement的,关于那两个接口的用法,在EB的代码里面就有例子,解决起来应该不难,有什么问题就来问我,别误了工作。”
说完,绝影挥挥手示意散会,Bug Yang终于如愿以偿接到大“CASE”,像拣了个宝似的。在这最后时刻,还不忘表现自己,回头道:“报告影头,保证按时完成任务。”
回想一下,从五一回来,其实还没认真休息一下,燕儿也早已经习惯了绝影这样一个接一个的CASE。她就是不明白,天底下CASE为什么总是这样多,而做CASE的人为什么总这么少,那CASE让绝影去做,再怎么做都做不完。
绝影也没怎么去哄他,反正他早就知道自己一写程序就投入得不得了,现在给燕儿讲这么多也没用,哪怕是跟她说:“明天就做完了,我一定和你去去看电影。”她当时听了是高兴,但就算明天真的做完了,周总突然说:“小绝啊,又来了一个大CASE。”哪怕他并不要他立刻去看立刻去做,但他肯定会立刻扑上去的,这就像饥饿的狗扑在火腿肠一样。这样,反而让她更伤心。
与其这样,还是破罐子破摔了吧。
下文:疯狂的程序员 第五十一回
本文链接:http://www.blueidea.com/column/member/2008/6186.asp
出处:疯狂的程序员
责任编辑:bluehearts
上一页 疯狂的程序员 第五十回 [1] 下一页
◎进入论坛休闲灌水版块参加讨论
|