当前位置:首页 » 读书汇 » 《疯狂的程序员》连载56:反汇编器 » 正文


《疯狂的程序员》连载56:反汇编器

发布日期:2014-12-02 22:40   来源:投稿   本文永久链接
摘要:说实话绝影就等着张厂长把他的研究成果公布出来,这样才能当场找出其中的纰漏并当场将他驳回。你想我绝影做到这里能弄出个反汇编器来,已经是突破性进展了,张厂长还能比我牛? 于是他平静地说:“说来听听,看看你有啥好法子。” 张厂长哪里知道绝影心里……

说实话绝影就等着张厂长把他的研究成果公布出来,这样才能当场找出其中的纰漏并当场将他驳回。你想我绝影做到这里能弄出个反汇编器来,已经是突破性进展了,张厂长还能比我牛?
于是他平静地说:“说来听听,看看你有啥好法子。”

张厂长哪里知道绝影心里的算盘,他还是和平时一样一本正经严肃认真一丝不苟地说道:“这几天我去他们车间调研了,其实开始我们都想复杂了。他们的芯片和主机通过穿口通信,类似于一问一答……”

“这是结构化数据,或者叫‘协议’。”不等他说完,绝影就很有成就感地打断他,在他看来,描述一个问题要用准确的专业术语,所以张厂长的水平如何,也就不言而喻。

“是,是,是协议。”张厂长连忙更正道,“这个协议呢,我粗看了一下,还比较简单,按照我最开始的设想,其实我们根本不需要在芯片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的亲睐,那恐怕你这辈子都得不到幸福。

这次燕儿却没像以前那样和他一起高兴,她避开这个问题反而问绝影:“我们家的电脑,怎么才能和别人的共享上网阿?”

“干嘛要共享上网?”

“我一个朋友,他带了笔记本来我们家,想一起上网。”

“朋友?这么晚了,男的女的?”

他正这样问的时候,听见电话里有人叫她,是男的声音,于是不等燕儿回答,抢先说:“你不用说了。”说完便重重地挂了电话。

忽然间,绝影感觉浑身的血都在涌动,他想也没想,马上给妈妈打个电话说:“你明天去燕儿那里把房钥匙拿回来,让她把她的东西都收拾好,让她滚!”

妈妈听得摸不着头,看绝影的语气又气又急,忙说:“什么事?怎么回事?慢慢说。”

“还有什么好说的?这么晚了,我不在家,她居然留别的男的在家过夜,让她滚!”说完,不等妈妈继续说什么,又重重的挂了电话。

那一夜,他又没睡着。
?
附记:哀悼日

到今天,地震已经整整过去了十天。我发现我自己的心态也在随着时间的变化而变化。

回想一下,最开始,心里总是害怕,从来没遇见地震,觉得真的很害怕,以至于每次刚回家,就觉得地又动了,真是胆战心惊。

19号,20号,21号是全国哀悼日。这一天,很早我就坐在收音机前,等待着和全国人民一起默哀。这几天来,电台也一刻不停地直播着。就在离2点28分大约还有半小时的时候,忽然又来了次比较大的余震,我感觉到地又动了起来。这时候,我也听到收音机里传来哗啦哗啦的声音,大概是播音室也摇了起来。又本能地感觉到害怕。

广播里停顿了一下,大概一两秒,接着又继续播音,像什么事情也没发生过,广播里继续传来哗啦哗啦的声音。

这一刻,我忽然很感动,其实这次震灾中,有许许多多感人的故事,我和大部分人一样对这些事情都没有亲历,即使这样我们还是觉得很感动。这一次,我却是亲历的。我们一样在这个城市,我们一样经历过地震,我们一样也正经历着余震。但是播音员还是尽职尽责得继续播音,从他们的语气中我没有听到丝毫的害怕和退缩,为什么?因为坚定的意志,因为他们是在为大家服务,在这个时候他们不能害怕,他们害怕,我们就更害怕。

人们站了起来,汽车停了下来,汽笛和防空警报都响了起来。这是我一生中第一次听到防空铃,铃声中没有恐怖,只有悲奋。我们悲伤了,但更要振奋。这个时候,我感觉到全国人民,还有世界上许许多多的人们都和我们在一起,都在亲历这场地震。还有什么好害怕的呢?我们不能害怕,如果我们害怕,大家就都害怕。

所以鼓起勇气,从害怕中走出来。去帮助更多的人,去鼓舞更多的人。

地震阿,撼山易,撼人心难。



关注谭海波博客官方微信公众平台
文章分类读书汇
文章标签:
本文永久链接:http://tanhaibo.net/2014/12/crazypro56.html
转载提示:除非注明,谭海波博客的文章均为原创,转载请以链接形式注明作者和出处。谢谢合作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注