友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
疯狂的程序员-第30部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
“这也不可能。”绝影马上打断他,“一快芯片有多少输入引脚?就算十六个,那也是65536种输入,以有限的精力,根本不可能全部测出的,而且输入的数据都是经过一定的算法来处理,还没见过谁笨到写65536个case语句,再有,关键是时序,如果他的芯片里有延时怎么办?怎么测,测得精确吗?”
张厂长望望绝影,都不说话了,现在就他们三个,在他们中,绝影在技术上就是权威,而且他不假思索,一二三说都头头是道有理有据,他说了不可能,就不可能。
陈董却说:“小绝啊,这你就太武断了。坦率地说,硬件方面,你的确比不过小张,这也是为什么这次让他来和你一起做这个CASE的原因,他的意见,还是很有参考价值的。”
绝影很不服气,还想说什么,可是陈董并不给他机会,一锤定音道:“就这样,你们俩各自都有自己的方案,就各自用各自的方案先去试试,先做一做再说。”
所以说汇编就是好。这么个Bin文件拿给BOSS Liu,就算他C++牛上天又如何?对他来说还不是就一堆二进制。但用汇编的人看法就不一样,在学校里学微机原理时就学了,汇编分两种,人工汇编和机器汇编,所谓人工汇编,顾名思义就是人工把汇编代码翻译成机器代码。你现在什么宏汇编器C++优化编译器都耍都有模有样又怎么样?要是没有汇编器编译器你还能有用武之地?
所以每当BOSS Liu吹嘘他C++什么虚基类类模板这样东西的时候,绝影都只说一句话:“《少林足球》看过么?‘天下武功出少林没听过吗你?’这是放之四海阶准的道理啊:(更新最快wap。1 6k。c n)天下语言出汇编没听说过吗你?”
然后陈董走过来,关节地问:“你们两还需要什么吗?尽管说。”
这时候张厂长滔滔不绝地说:“我需要电压表电流表,示波器,电阻之类的一些基本电子元件和一块PC板。”好像要东西越多越能体现出他的专业。
绝影却平淡地说:“我只需要一本《Development Guides》,当然,这个我会自己从网上下载。”好像要的东西越少月能体现出他的效率。
在绝影心中,你拿一大堆先进装备把人质救出来算个啥,不就是一个人质吗?还搞得像老美一样得飞机大炮坦克卫星加特种部队,俺就是要发扬勤俭节约的精神,就一把AWP一枪把绑匪毙了完事。啥是效率,这就是效率啊,纳税人的钱不是拿来让你拍电影的,公司的钱不是拿来让你体验新产品的。
下载到《Development Guides》,绝影一头埋在对Bin的反汇编中,也许是软件做得多了,他一直认为张厂长弄不出啥大成果出来,上次也就是弄了个遥控器出来,不过意义不大,除了他们本地那家医院,公司连一套都没卖出去过,到后来,周总把这事都忘了,有一次燕儿从工具箱深处挖出这么一个遥控器来,周总居然拿在手里翻来覆去得大量,还一边说:“这是啥时候买的东西?”越是这样,张厂长也越是想弄出大成果来证明他。
其实对照《Development Guides》上的指令集,完全可以把Bin反汇编出来,奈何这工作进展实在很缓慢,弄了一个上午,才翻译出一百来行代码,还不到二十分之一,而且还时时担心那一点反汇编错了,哪怕只错一点点,影响到后面代码的定位,后面所有的工作基本就白做了。照这个进度,要把这个CASE搞完,只怕只有在北京过年了。
虽然在很多时候懒人都被人鄙视,但不得不承认,懒人的确为我们的社会做了不少贡献,没有人懒得走路,就没有人发明汽车,没有人懒得爬楼梯,就没有人发明电梯,没有人懒得去做人工汇编,也就不会有人发明汇编器。
这一次,要不是绝影懒得去做人工反汇编,他也不会考虑做个反汇编器。不过他在决定做这个反汇编器的时候,心里还是很没底,以前还是菜鸟的时候,就听哪位牛人说:“如果你做出了反汇编器,就尝试做个汇编器,如果你成果做出来汇编器,就可以尝试做个编译器。”说实话从学写程序到现在,开发编译器这东西,尽管绝影很感兴趣,但从来都不敢碰,考软件设计师那编译原理都索性全部放弃,为什么?编译器,那实在不是牛人就能做的东西,那是大牛才能做的!
没底归没底,仔细想想,其实这反汇编器也不是那么困难,自己手工反汇编了半天,那反汇编的流程基本已经摸得清清楚楚,在加上这芯片也设计得简单,还是定长指令集,这真是Motorola公司莫大的恩惠啊。用最笨的办法把每条指令的机器码、操作数类型、指令加数据的长度、助记符弄成个结构体,再建一个表,把所有指令都收进去,到时候查表不就行了。
花了一天时间,当这个反汇编器诞生的时候,绝影始终还是不相信自己:难道我离大牛的距离又进了一步了?
马克思说得好,资本家总是不能满足的,今天他赚了100%的利润,不要以为他就知足了,他仍然会想:明天我怎么才能赚到200%的利润呢?绝影满以为这反汇编器一秒钟之内便能完成手工三四天才能完成的工作,已经是整个CASE里巨大的里程碑,值得自己好好骄傲一阵子。陈董却拍拍绝影的肩说:“小绝啊,真是从来没让我们失望过。现在任务还很紧啊,你看看,抓点紧,试试把那汇编代码翻译成C代码吧。”
绝影听了就想吐血,早知如此,还不如就人工翻译,说不定花个三四天功夫,陈董还会让他休息一两天。
虽然明知自己中了资本家的计谋,但绝影还是不知悔改,也许程序员都是这样。这不是因为这个CASE做好了,又能有多少多少奖金,或者一下从技术经理升职成总经理。正如做反汇编器一样,反编译对绝影来说一样也是件很有意思的事情,因为他没做过,什么事情没有做,就不知道有多难,也不知道这里面会遇到什么样的困难,更不知道如何才能解决这些困难。
所以现在的很多年轻人,总以为读书破了万卷,下笔写起程序来就真的如有神助,于是参考书技术资料管他有用没用能下载的挂上BT全天24小时下载,一次就下载个十几G的,比MSDN还大,不能下的就书店图书馆网上书店全都搬回家,不管能不能看懂或者有没有时间看,总之,哪怕放在那里看看封面,也觉得离牛人的距离又进了一步。
有的或者又像Bug Yang一样认为有个牛人能带带自己,就如《鹿鼎记》中的韦小宝一样:“你赶紧传授我绝世武功吧,我好去卧底。”可是《鹿鼎记》中陈进南不是也说了么:“我看绝世武功的秘籍,用了三年,练功,用了三十年。”
反编译的工作比想像中要困难许多,几条汇编语言组织起来得翻译成得体的C语言,能翻译英文书的人英文都应该算了得了,但是翻译起英文著作来都还是牛头不对马嘴,更别指望这个世界有自动英文翻译器,有,那Google在线翻译,效果实在不敢恭维,就如别人笑你英文菜,说道:“你那英语,简直是Google在线翻译。”
这些绝影自己都没弄透彻,更别指望三五天时间里弄出个反编译器出来。
就在他骑虎难下的时候,张厂长突然大声宣布:“出成果了!”
绝影回头一望,他的表情,和Bug Yang完成任务时一模一样。
附记:
到今天,地震刚刚过去一周,但它带来的影响远远超过了想像。逝者已经逝去,生者为他们默哀,但生者也还在受着折磨。
这一周来,最大的心愿就是能好好洗个澡,能在床上伸直了脚睡一觉,但偶尔冒死回去一下房子又时不时地摇一摇,吓得人提心吊胆。本来下定决心,昨天就回家去住,但刚1点多,又来了次大的余震,房子轰轰地响。赶紧又躲进厕所,叫百万进来,百万还全然不知。今天就再也不敢回家了。
今天在报纸上知道,昨天的那场余震,让江油又失去了13条生命。
一周过去了,露宿的人反而越来越多,明明有自己的房子,却要露宿街头,这里面有多少苦衷啊。
最近今天,朋友们聚在一起,都在讲这次地震,讲自己的亲人朋友,讲北川平武。很多人都说,以后在绵阳,恐怕不会有北川这个县了。这次我没有去北川,但据去过的朋友形容,相当惨烈,整个地直接沉下去,然后两边山倒下来把它盖上,就像包饺子一样。
女朋友作为支援者去了一次安县,回来就一直哭,说那里好恐怖:房子都倒得差不多了,路上还时不时有人等待救助,也时不时地摆放着一具具尸体。
安置到绵阳的灾民也越来越多,据说超过了50万。这几天很多人都是哭着去几个安置点寻找自己的亲戚朋友,又哭着从里面出来。
街上时常有警车和救护车经过,现在大部分救护车都是外地的,看了很感动。还有网上看到的捐款什么的,有些人在讨论,谁捐得多谁捐得少。其实捐多少都不重要,因为很多损失,根本是没法用钱来衡量的。所以力所能及,能捐多少就捐多少吧,重要的是,希望你能捐出一份心,这个才是灾区人民最需要的。
说实话,刚经历地震的时候,很害怕地震,但是一周过去,我觉得流言比地震更可怕。
正文 《疯狂的程序员》56
更新时间:2008…11…11 22:41:51 本章字数:5118
说实话绝影就等着张厂长把他的研究成果公布出来,这样才能当场找出其中的纰漏并当场将他驳回。你想我绝影做到这里能弄出个反汇编器来,已经是突破性进展了,张厂长还能比我牛?
于是他平静地说:“说来听听,看看你有啥好法子。”
张厂长哪里知道绝影心里的算盘,他还是和平时一样一本正经严肃认真一丝不苟地说道:“这几天我去他们车间调研了,其实开始我们都想复杂了。他们的芯片和主机通过穿口通信,类似于一问一答……”
“这是结构化数据,或者叫‘协议’。”不等他说完,绝影就很有成就感地打断他,在他看来,描述一个问题要用准确的专业术语,所以张厂长的水平如何,也就不言而喻。
“是,是,是协议。”张厂长连忙更正道,“这个协议呢,我粗看了一下,还比较简单,按照我最开始的设想,其实我们根本不需要在芯片I/O口上测量,直接把所有可能的通信协议测量出来并自己用另外的芯片实现就行了。”
张厂长说完,大家都沉默了好一会,陈董才突然大声说:“好办法!这真是个好办法!亏得小张还去车间调查了,毛主席说得好阿,没有调查,没有发言权。”
绝影再仔细推敲一下,这里面实在没什么纰漏,因为张厂长描述得实在太简单了。是程序员的人人都懂得这个道理,除非规模很小的代码,都是有BUG的,那怎样才能没BUG?办法只有一个,写少代码。
说到写代码的风格,江湖上大底有两派,一派认为写代码就如同下象棋,写之前一定要深思熟虑,成竹在胸,写的时候要正襟危坐,规规矩矩,总之一句话,代码就要写得规范,格式要比毕业论文还标准,措词要比红头文件还严谨。BOSS Liu大概就属于这一派,而且他还不仅仅只满足于属于这一派,更热衷把他的思想强加到别人头上,所以总是对新人说:“看看你写的代码,我说了好多次了,注意缩近,注意缩近,还有匈牙利命名,你看你写得一团乱糟糟的,还让不让人看?”
而另一派认为代码就如同美女的裙子,既然是裙子,当然要越短越好,要不你还不如就穿长袍。虽说代码写在电脑上,又浪费不了多少纸张,但写得短小,毕竟能节省不少打字的时间,而且根据上面BUG的理论,说不定还能减少一些BUG。当然,超短裙也不是一般女人都敢穿的,你要是身长五尺腰围五尺,腰上就像套个救生圈,那就奉劝你不要穿了――不但穿不出性感,反而还被别人笑话,说一句“东施效颦”还算客气的了。所以这一派的人不算多,但大部分在程序上都对自己特别有信心。绝影大概就属于这一派,而且他还不仅仅只满足于属于这一派,更希望把这一派发扬光大,要是全世界的美女都穿超短裙,绝影就笑死了。所以他总是对新人说:“你看看你写的代码,就这么个简单的逻辑判断还switch/case,我说了多少次了,要精简要精简,你看我来给你压缩一半。”
每当这时候,BOSS Liu就一本正经地对绝影说:“我说BOSS阿,你面试了那么多人,每次都先问人家:‘有多少行代码经验阿?’经验当然是要越多越好,但真写起代码来,又尽让人家往‘迷你裙’里写,你这不是自相矛盾吗?”
绝影也一本正经地回答道:“你不懂,多少行代码,那是给面试的人看的,‘迷你裙’,是给自己看的,自己看的东西,当然要好!”
虽说平时在公司,张厂长对绝影明里暗里打压自己心里很清楚,但近朱者赤近墨者黑,久而久之也受了绝影“迷你裙”理论的熏陶,讲起话也是滴水不漏,言多必失阿。
今天听了张厂长这一席话,绝影在心中暗暗嘀咕:“小张阿,又进步了!”
陈董回过头来,对绝影说:“我说吧,硬件方面,小绝阿,你还是要多请教请教小张阿,小张,你这个法子不错,就用这个法子!”
绝影不甘心,试探着问陈董:“那我那个反汇编器呢?”
“你那个先放一放,先集中力量用小张的方法。”
本来绝影期望着陈董给点肯定,挽回点面子,结果反而把仅剩的一点面子都丢掉。所以说有时候阿,不去刻意地挽回面子就是最好的挽回面子。
正如陈董所说,在硬件方面绝影确实该多请教请教张厂长,以前没用的时候不觉得,总想着在学校里还学了几年数电模电单片机,瘦死的骆驼比马大,怎么也比一般人要好一些。到现在真用起来的时候他才发现自己硬件真的很菜,大规模的电路就不说了,张厂长抱来一台示波器,他竟然像没见过似地问:“这家伙是啥阿?还挺大的呢!”
张厂长头也不抬:“示波器。”
“示波器?咋跟书上画的不一样呢。”
菜到这个程度,当然只好给张厂长打打下手,平时在公司当惯了头头,一下子打起下手来还极不适应。但人就是如此,哪怕你一方面牛上天了又如何?你还不是有不懂的地方。比尔盖茨不会拍戏,张艺谋不会唱歌,周杰伦不又不会写程序。
有不懂的地方就要多去学,其实打打下手也无关紧要。怕的就是又不懂又死要面子不愿意多学习多向别人请教。到头来害了谁,还不是害了自己。别人东西没少,你自己却有很多东西没有得到。
张厂长兴致勃勃地又搞了半天,忽然像丢了钱包似地对绝影说:“糟了!”
“怎么了?”
“忘了个重要事情。”
“什么阿?”
“串口通信参数是多少?”
串口通信绝影还是知道的,大二在学校的微机原理课程设计就是做的双机串口通信。眼看张厂长落了难,绝影现在反而有点幸灾乐祸地说道:“当初你讲得头头是道,我还以为一切尽在你掌握中,还得我放弃反汇编器屁颠屁颠跑来跟你搞,结果你连这个都还不清楚,串口通信参数都不知道还搞个P阿,什么波特率奇偶位停止位数据位,这么多参数,难道一个一个排列组合来试?”
“事到如今,恐怕只有一个一个来试了。”
“不好,穷举法,最笨的办法,我不用这个。”
“那你再想想别的办法吧,我先一个个试。”
说实话绝影喜欢把代码写得短,在一定程度上和他的懒是息息相关,比如遇到这档子事,张厂长肯定会一个一个去试验,别说这事,就是16根I/O引脚让他去测所有输入输出说不定他都会去做,他也不先算算有多少排列组合。
张厂长说完便埋头忙他自己的。绝影还是觉得自己做的反汇编器是个宝,扔了实在觉得可惜,趁着张厂长埋头的时候又拿出来把玩一下,看着反汇编出来的一行行熟悉的代码,突然想起什么似地对张厂长说:“别去瞎整了,我有办法。”
张厂长疑惑地回过头来。
绝影样样得意地说:“看我的反汇编器。”
“都到现在了,你还想这把代码全部反编译出来?我问你,那得多长时间?”
“没两三个月肯定反编译不出来。”
“那就对了,陈董还会等你两三个月?”
“我说的两三个月,是反编译出全部代码,翻译成C语言的,但是如果只把这里面串口通信参数设置相关的部分反出来,最多只需要要半天。”
虽然绝影说话的语气非常自信,但张厂长还是疑惑地看着他:“你那反汇编器,反汇编出来的代码真的是对的吗?”
“对不对看串口的设置就知道了。”
事实证明绝影的反汇编器是对的,因为从反汇编代码中正确找到了串口参数,他们后来的工作进展得非常顺利。张厂长用ARM芯片成功地替代了Motorola芯片并做出一个控制端的雏形,陈董又要求绝影用VC在PC上做了一个软件控制端。
绝影没料到陈董还有这个要求,原以为只要全心全意辅助张厂长把硬件搞完,大家就可以皆大欢喜回家过生日,但陈董看着项目进展顺利又提出附加要求,所以说员工阿,你无论如何努力都没法让老板满足的,今天你给他拉了一车砖,明天他就琢磨着看你还能不能再多拉半车出来,但是你又不能拉得太少了,别人能拉一车,你只拉半车,拿要不了多久老板就会抄你鱿鱼。CASE的进度如何拿捏,在员工和老板之间,看来还是个复杂的博弈过程阿。
绝影本来想告诉陈董自己对燕儿有承诺,过生日之前一定要回家,但他还是没有说,正如他对燕儿说的,要是过生日前回不去,我就直接辞职了。放不放我回去,由你说,辞不辞,还得我自己做主,关键是我在过生日前能把CASE做完,也就问心无愧了。
抱着这样的心理,绝影又投入到了日以继夜的开发中。这时候张厂长却有闲了下来。其实以前在公司大多时候也是这样,软件公司嘛,软件上的CASE肯定要比硬件多,张厂长和绝影都已经习惯了这样。只是这一次,张厂长忍不住说:“你干嘛把自己弄得那么累呢?”
“不累就做不完。”
“做不完你可以跟BOSS重新要求时间嘛,你把进度拖快了,搞得我们以后做什么CASE都得按照你的进度来。再说了,你天天加班加点,又没有更多的奖金给你。”
这时候,绝影一本正经地说:“我知道,也许我用十倍的努力只能比别人多出一倍的收入,但是我也知道,如果我不用上这十倍的努力,我连一倍都多不出来。”
他这样说,其实心里在想:我只想早点做完,过生日之前回去。
用这么短的时间,软件可以做得很漂亮,但硬件又要制版又要安装的,也只出来一个雏形,张厂长也没心思去优化他。验收那天,陈董和对方徐总整整谈判了一上午,到中午吃饭的时候,两个老总来到车间,看了两人的成果,徐总拍着绝影的肩说:“小伙子,不错阿,这么短的时间里,做出这么好的东西。”
那一刻,绝影突然感觉很久都没感觉到的幸福,也许上一次,还是50行代码100块钱的那件事。这是第一次,不管是BOSS还是用户对他说:“小伙子,不错阿。”这不是他一直以来追求的别人的肯定么?
晚上兴奋得睡不着,给燕儿打个电话,抑制不住内心的喜悦对她说:“CASE验收通过了,很成功,非常成功。我明天就往回走,生日之前肯定能到家。”
其实,自己的成果能得到别人特别是用户的肯定,又能和自己心爱的人分享,这已经是世界上最幸福的事情了。幸福都是有限度的,如果你想的幸福是自己在一个月里就做出的东西既能得到别人的肯定,又能赚到这辈子都花不完的钱,还能由此得到某个心仪已经的MM的亲睐,那恐怕你这辈子都得不到幸福。
这次燕儿却没像以前那样和他一起高兴,她避开这个问题反而问绝影:“我们家的电脑,怎么才能和别人的共享上网阿?”
“干嘛要共享上网?”
“我一个朋友,他带了笔记本来我们家,想一起上网。”
“朋友?这么晚了,男的女的?”
他正这样问的时候,听见电话里有人叫她,是男的声音,于是不等燕儿回答,抢先说:“你不用说了。”说完便重重地挂了电话。
忽然间,绝影感觉浑身的血都在涌动,他想也没想,马上给妈妈打个电话说:“你明天去燕儿那里把房钥匙拿回来,让她把她的东西都收拾好,让她滚!”
妈妈听得摸不着头,看绝影的语气又气又急,忙说:“什么事?怎么回事?慢慢说。”
“还有什么好说的?这么晚了,我不在家,她居然留别的男的在家过夜,让她滚!”说完,不等妈妈继续说什么,又重重的挂了电话。
那一夜,他又没睡着。
附记:哀悼日
到今天,地震已经�
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!