《疯狂的程序员》50
作者:绝影      更新:2017-12-19 12:26      字数:5888

说树挪死,人挪活,BOSSLiu在这边又是老婆又是妈拖家带口的,居然毅然决然背井离乡要跑到北京去发展,看来那边的工作应该相当有前途。绝影最后说了句:“BOSS你好好保重,我有机会出差去北京一定来看你。”便放下了电话。

EB虽然在泉州已经被医院签字验收,但医院还是天天打电话过来。开始几次是下面小弟接的,小弟们当然支支吾吾说不出个所以然,语言又不通,那边的人听着也觉得不过瘾,后来干脆指名点姓要绝影来接电话。

医院的人毕竟水平有限,提出来的大部分是些使用上的小问题,那边的人一边谦虚地向绝影请教,一边还紧张地跟旁边地人说:“记下来记下来,刚才绝工说的,赶紧记下来,全部记下来!”好像稍微记得慢一点,绝影讲的东西便掉了,再也找不回来。

突然间,绝影又找到点当初念书的时候同学们来向他请教的感觉,原以为毕业出来工作了,学校里那种感觉再也找不回来,说“千里马常有而伯乐不常有”,没想到现在的社会真是“笨人常有而聪明人不常有”。

对方一虚心,绝影又飘飘然起来,把本来无关紧要的或者别人根本没遇到的甚至是可能出现的问题又拿来讲一大堆,对他来说,是讲得越多越好,讲得越多,就越高深,越能显示出他的水平。

半小时过去,等他过足了瘾,才缓缓地说:“我讲的,都是很重要的,你们再下去好好体会体会。”

那边不甘心,继续问:“绝工,还有没有什么注意事项,我们最担心的数据安全性的问题,要是数据掉了,我们可是担当不起的啊。”

绝影故作深沉地说:“其它的下次再讲吧,这次讲太多了怕你们印象不深刻。数据安全的问题,照我说的就没错,这个也是没办法的事情,就是软件做得再好,别人把你硬盘拿了一样是白搭,所以主要还是加强管理。”

放下电话,绝影的虚荣心又一次得到极大的满足,他屁颠屁颠跑回办公室,悠闲地点了根烟。刚抽了两三口,外面一个小弟突然探头进来,吓了他一大跳。

不用说,这肯定又是BugYang。绝影对这人一直没什么好感,其实人家也没什么不好,对绝影又是敬重又是崇拜又是害怕,谁叫BugYang正是周总这次新招聘进来的,他向来对周总招聘学校里新人的做法腹绯很多,大都没什么真本事,又老爱夸夸其谈,周总觉得不好使了,黑脸还得他去扮,一回一回送这帮人出去,每次还得像金像奖,梅花奖一样对他们来一番致辞。这腹绯又慢慢延伸,扩展到这几个新人身上,于是新人们只好莫名其妙地受了绝影满肚子气。

BugYang的身世说起来也极富传奇色彩,初中毕业时刚好赶上辍学经商的热潮,于是紧跟时代潮流,或者是说向BillGates学习,干脆不念书了。但做生意又没本钱,十几岁又没啥工作可做,于是去考了个B照――后来绝影知道这驾照还是走后门花钱买的――开大货车,也算是吃了不少苦。有一天,拉了一车货到天津,刚下了货,忽然又不想开货车了,于是连车也不要,打个电话给家乡的朋友,借了400块钱,还是在路边随便找了个人借了别人的银行卡才取到钱。下火车回家正好路过公司,又看见公司正好在招人,随便进去试了一下,估计正好碰到周总还在睡觉,居然稀里糊涂过了。就这么马马虎虎进了公司。

BugYang本来也不叫BugYang的,奈何才工作没多长时间,大家就发现他老是制造BUG,而且是一堆一堆地制造。程序上的BUG又不比其它,你的代码我拷一点他粘贴一段,三下五下BUG就像流感一样到处传染,不几天,整个公司都被搞得乌烟瘴气。

但BugYang也并非不负责任之人,BUG是他造的,他认,转身就改。不到十分种,便像BOSSLiu一样突然高呼:“影头,改好了。刚改了最后一个,这次绝对OK!”

拿来一用,继续一大堆BUG。

不等BugYang开口,绝影皱着眉头说:“干什么干什么?不是说了很多次了,进办公室先敲门。你想吓死老子啊?”

BugYang受了批评,连忙小心翼翼地说:“影头,对不起,下次不啦。”

绝影又抽了口烟,不耐烦地说:“行行行,有事赶紧说,没事回去改BUG去。”

“其实其实……其实就是关于我现在做的工作。我不敢说,说了你要骂我。”

BugYingg这样说,反而掉起了绝影的兴趣,他把烟掐掉,正儿八经地说:“说吧,说吧,不骂你。”

听了这话,BugYang受了点鼓舞,在心里憋了口气,扬起头说:“报告影头,我不想做现在的工作了。不就是做个DcmPrint的Job队列吗?就这么小个功能,老早就做完了,你又让我一直改BUG,刚才改了最后一个,这次绝对OK了。我要做大CASE!”

听了这话,绝影却并有生气。“我要做大CASE!”这不正是自己和BOSSLiu常常挂在嘴边的话吗?这小子还有点自己的影子,小绝影。

这么想,他还是一本正经地说:“什么好不好啊?BUG是你造的,当然要你来改。整天都是最后一个最后一个,你跟你说,你的想法是错误的,BUG只会改一个少一个,你没发现BUG并不代表BUG就不存在。你那BUG呀,改了一个又是一个,是循环队列,懂不?还不回去继续找BUG去。”

这显然不是BugYang想要的结果,他仍然不依不饶地说:“影头,这BUG改来改去也没意思,我觉得我现在技术到家了。程序员,应该写程序,哪里有天天改BUG的。”

这一次,绝影发了火,他厉声说道:“什么技术到家不到家,老子最讨厌那些会个‘select’就说自己精通数据库,能背几条指令就说擅长汇编的人。什么应该做什么不应该做什么,跟你说,以前老子和BOSSLiu还帮别人修过电脑呢!出去给老子改BUG去!”

先看绝影心情还好,BugYang好不容易鼓起勇气说出了他的心声,哪料到绝影现在突然发这么大火,他徉徉地说:“不是说不骂人的吗?”边说边退出了办公室。

现在的年轻人啊,就是这么自以为是。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’子句。”

绝影在上面把自己的想法一股脑讲给下面,基本上把问题产生的原因和解决方法都描述得清清楚楚,就是没差写出具体代码了。BugYang他们在下面表面上听得认认真真,实际上他一直在热血沸腾兴奋不已,根本就没在乎他讲的什么。等到他话音还没落,BugYang立即踊跃而上,说道:“影头,说那些都没用,直接告诉我让我做什么就行了!”

“老实点!再跳,又让你回去改BUG。”

这么说,BugYang又努力让自己安静下来。

“启动部分我来做,你和小唐去解决第二个问题,小唐做查询和分页显示,你把所有JavaScript的调用改成IHTMLDocument2和IHTMLElement的,关于那两个接口的用法,在EB的代码里面就有例子,解决起来应该不难,有什么问题就来问我,别误了工作。”

说完,绝影挥挥手示意散会,BugYang终于如愿以偿接到大“CASE”,像拣了个宝似的。在这最后时刻,还不忘表现自己,回头道:“报告影头,保证按时完成任务。”

回想一下,从五一回来,其实还没认真休息一下,燕儿也早已经习惯了绝影这样一个接一个的CASE。她就是不明白,天底下CASE为什么总是这样多,而做CASE的人为什么总这么少,那CASE让绝影去做,再怎么做都做不完。

绝影也没怎么去哄他,反正他早就知道自己一写程序就投入得不得了,现在给燕儿讲这么多也没用,哪怕是跟她说:“明天就做完了,我一定和你去去看电影。”她当时听了是高兴,但就算明天真的做完了,周总突然说:“小绝啊,又来了一个大CASE。”哪怕他并不要他立刻去看立刻去做,但他肯定会立刻扑上去的,这就像饥饿的狗扑在火腿肠一样。这样,反而让她更伤心。

与其这样,还是破罐子破摔了吧。