`
hanhg
  • 浏览: 133745 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

疯狂的程序员-第三十八章

阅读更多
周总一说放一放,绝影就怕得要死。天知道这一放又要放多久。比如馒头这东西,刚做出来的时候热气腾腾还带点甜味确实蛮好吃的,放一会凉了也还能吃,要是你放个一天两天,那馒头就变成了石头,还如何能吃?

程序也是如此,好端端一个程序,若能一直写下去,倒也像香喷喷的馒头,越写越多,越写越有劲,要是哪一天突然让你停下来,N个月后再让你来看,明明是自己写的东西,反而全都不认识了,程序员又不是狗,靠鼻子认东西。再来写等于从头再来,从头再来还好点,至少思路都是自己的,现在还要顺着以前的思路写,接别人的活写着写着就骂以前的程序员,接自己的活写着写着就骂自己。

绝影强压住心中的怒火,周总慢条斯理地说:“上次医院那套系统用了这么久了,最近根据他们的反馈,效果还不错,还有好几家医院来参观过,正好给咱们免费打广告。一套系统做好了,我们不能仅仅满足于系统本身,也应该再做点增值产品,一来可以扩展KIPACS的功能,二来还可以再给我们增加点收入。”

本来绝影认为KIPACS确实没有什么技术含量,基本上没有什么再开发的价值,相比起来,DAP的价值要大得多。如果是别人这么说,他肯定拿出一大套说辞来有力地反驳他,奈何这话又是周总说,现在公司收入的大头还是得靠KIPACS,于是继续听周总往下说。

“最近我调研了一下,发现一个很简单也很实用的功能,就是遥控器。比如以前我们在KIPACS上点击‘拍摄’按钮来拍片,医生一边要兼顾病人的体位,一边又要到控制台上来操作,实在不方便,离放射源也近,不如拿个遥控器,远远地就可以拍摄了,你说多方便。”

他这么说,绝影几个人不约而同地点点头,周总也确实想到独到之处。现在什么东西都有人做,做的多了,竞争就激烈起来,本来大家的技术都差不多,比就比什么?比谁的设计新颖,谁的设计更人性化,系统是越来越复杂,操作要越来越简单,就比如Photoshop,东西是好,但学起来太难,起码得买三五本书,要想稍微提高一点至少还得报上一个培训班,比学写程序还难,所以尽管早在大一的时候绝影就打算学Photoshop但直到今天还是什么也没学会。

程序员的想法往往是所有人都是程序员,这么简单一个程序,不说你看一眼就懂,至少你摆弄个三五天也应该耍得有模有样。有这种想法,设计起来就粗糙了,能省的地方就省了,比如软件配置,就不专门做配置模块了,你自己去修改ini文件吧,大不了给你写个文档,哪个Section哪个Key是什么什么功能。

可是用户偏偏和你想的不一样,想想傻瓜相机这个概念刚出来的时候多火爆,所以你就得把用户都当成傻瓜,你永远不要指望他会把鼠标移到工具栏上停留个三五秒自己去发现上面的Tooltip,最好啥都做成一键式,一键拍片,一键恢复,一键出报告,然后在大大的按钮上把这些用红色字体都标注得清清楚楚。

周总见大家都很赞同他的观点,颇有点得地说:“现在遥控器的优先级要高一些,小绝你先把DAP的项目放一放,这个属于硬件方面的开发,小张你应该比较了解,你好好去调研一下,有什么问题让小绝多提供些支持。”

张厂长听了周总的话,胸有成竹地使劲点头,想在公司这么久,被绝影嘲笑自己做玩具都不直到嘲笑了多少次,奈何自己一个搞硬件的偏偏身在软件公司,有一点鹤立鸡群的味道,那些鸡不但不觉得自己漂亮,反而嘲笑自己长得太丑。这次可是一次扬眉吐气的机会。

绝影心里还是有点不舒服。他觉得周总心里有偏见,不要说周总,全世界对软件都有偏见,都觉得硬件好,念初中的时候,老师就说:什么是硬件?硬件就是看得见摸得着的东西。什么是软件?软件就是看不见摸不着的东西。人们的心态就是这样,往往更喜欢实实在在捏在手中的东西。早些年布雷顿森林体系的时候,你跟他说金属本位制,美元也是硬通货,直接跟黄金挂钩的,可人们还是偏偏喜欢黄金,眼看金融危机一来,赶紧把美元全部换成黄金,搞得美国也没了那么多金子,不得不放弃美元,美元也变成了货币符号,最后害了谁?还不是害了自己,自己辛辛苦苦挣再多钱,不过是货币符号而已。



张厂长兴冲冲去城隍庙电子市场出了几次差,每次都抱回一大堆电阻啊,电容器啊,电路板啊这次材料。本来他就爱捣鼓这些玩艺,加上这次都是公费报销,虽然以他的人品肯定不会中饱私囊,但放在公司里也差不多就是自己一个人用,当然要尽可能多地充实自己的工具箱。

绝影见他每天都忙得不亦乐乎,忍不住问:“怎么样?有眉目了吗?”

“当然当然,一周下来,还是小有收获。”

“有啥收获啊?拿来见识见识。”

听他这么说,张厂长小心翼翼地从箱子中翻出手机大一个遥控器,递给绝影说:“就这个,如何?九键的遥控器!”

绝影掂了掂,感觉轻飘飘的,想起小时候买钢笔,妈妈说要买重的,重的好,从那时候开始,就觉得轻的东西不牢靠。你想黄金啊白金啊这些值钱的东西,哪样不是沉甸甸的,要说轻,就塑料这些不值钱的东西才轻。于是问:“这么轻呀?顶用吗?”

“当然顶用了。发射功率大,有效范围30米。”

“不会吧,我家的电视机遥控器拿到门口基本就不能用了,这玩艺能有这么厉害?”

“我怎么可能吹牛呢?来我给你试验一下。”

张厂长说完,从绝影手中接过那个遥控器,三步五步跑到公司外面,绝影跟着他跑过去。出了公司,张厂长说:“不要说10米20米,就是隔道墙,信号都能过去。”

他一边说一边按下上面的键,两个人再进到公司里面,果然,张厂长桌上电路板上的灯亮了。

绝影见那桌上的东西堆得是七零八落,好多东西都没见过,原来画电路图,电阻一个个都花生那么大,亏得这次张厂长从城隍庙带回一大串电阻,才直到原来现在科技进步了,电阻都做得米粒这么小。

绝影一边大量张厂长的办公桌一边忍不住伸手去拿,张厂长赶紧喝道:“小心,别碰!”吓得绝影又赶紧撒手。

“这东西就是单片机,小心,别给我碰坏了。”

“就这么点大,就是单片机?”

“当然了,AVR Mega16芯片!”

就轻轻碰了一下,张厂长居然对自己大呼小叫,绝影觉得他也太小气了,他狠不得告诉他:不要说区区一个单片机,就是数字信号处理器,老子在大学也早就学过了,而且成绩还不奈。虽说张厂长是搞硬件软件的,可说不定自己一样也能搞硬件开发。坏就坏在自己当初把学电路的时间都拿去学写程序去了,要不今天也不至于在张厂长面前如此无知。

周总听到呼声,也从办公室走出来,见张厂长桌上摆满了电子元件,好像进展不小,便问:“怎么样?小张,进度如何了?”

张厂长认认真真地回答:“材料都已经差不多了,就差芯片的开发了。”

“还有什么问题吗?”

“目前还有两个问题。一是还没有开发板,二是还没有集成开发环境。”

“那你有什么打算呢?”

“开发板有三个方案。现在我这里有一个我同学自己做的开发板,不过他应该不会免费送给我们;二是我们可以去买一个现成的,估计差不多100块钱;三我们也可以尝试自己做一个。”

张厂长说完顿了顿,似乎在等待周总。周总皱了皱眉头问:“自己做,有把握吗?”

“没做过。”

“那我们还是不要冒险了。就跟你同学说一下,看他能不能便宜点卖给我们。反正他的东西都借给你用了这么久了,你上手起来也比较快。”

“嗯。还有集成开发环境。现在有两个选择,一是用BASIC语言,有现成的BASCOM,相关的资料和教材我都有;二是用C语言,对这个我不是很熟,网上查了一下,可以用KeilC。”

“BASIC肯定不能用,这里先否决了。我们一直是用C/C++做开发,技术要能够为以后做积累。你就去调研下用C语言做吧。有什么不懂的多问问小绝,他对C语言比较熟。”

用C语言来开发显然是张厂长不愿意,他本来就擅长BASIC,用起来可谓轻车熟路,正因为自己擅长这个,所以虽然在公司呆了这么久,C/C++方面他还是没怎么提高,让他用C语言来开发,等于是让他从头开始学。

不过项目既然已经下来,自己就必须得顶上去,张厂长也是焦头烂额突击C语言,居然在一周内有了突飞猛进。原以为应付这么个小项目应该没有什么大问题,但真正做起来,方才觉得书本上的知识实在太有限了。好在公司里还有绝影撑腰,周总说了,有什么问题,找他。

绝影看了他的程序,忍不住在心里笑,所有的变量居然全部定义成全局变量,写一个函数判断第一个参数是否大于第二个参数明明一个return a>b;就行了,他非要写成if(a>b) return TRUE; if(a<=b) return FALSE; 好在虽然程序写得糟,但逻辑思路还是正确的,问题就出在和芯片相关的函数调用上,那C语言,光一个芯片类型就花了整整几十K的头文件来定义,看得绝影也是晕头转向,只好给他说:“应该是芯片定义的问题,你再好好看看。”

绝影一席话,让张厂长如获至宝,赶紧又埋头忙他的去了。反正绝影又闲得无事,于是向张厂长要了一份芯片官方的开发手册研究起来。

看了一个下午,想这AVR单片机开发哪里有那么复杂,一本开发手册,一个汇编器,一个下载器足矣。那汇编肯定是难不住自己,大不了要用什么指令,要怎么设置标志位到手册上查就是了,亏得张厂长还装个50多M的开发环境。反正现在有流行玩单片机,普通小市民见面打招呼不外乎就是:“吃饭了吗?“大老板们打招呼往往是:“怎么样?官司打赢了没有?”搞技术的人,特别是搞硬件的,打招呼却是:“最近玩啥板子呢?拿出来研究研究!”绝影虽说学了点单片机的毛皮,但这种流行的玩艺的确还没有实际玩过,这次正好什么条件都有,于是下班的时候,把张厂长拉到一边,低声说:“今天晚上,就把你那开发板借我用用吧,我也去过过瘾。”

平时难得有绝影向张厂长请教,所以张厂长倒也大方,叮嘱了几句也就把开发板借给了他。

回到家,绝影望着那开发板和芯片感慨万千,好不容易有个实战的机会就这么给浪费了,那太可惜了。要干就干个大家伙,就把那遥控器的芯片程序用汇编写出来,也拿给张厂长和周总瞧瞧。

其实用汇编来做芯片开发也并非想像中那么复杂,主要还是这个项目太小,也就是从I/O口取到遥控器的输入,编码一下再从I/O口发出去,关键是用汇编,中断控制得自己来做,好在自己当初在学校就专攻了汇编,这玩艺也难不到他。

忙活到半夜三点多,这程序居然还写了出来,其实总不过一百来行,汇编成HEX再烧到芯片里,居然才占了4K空间。

绝影洋洋得意地收起自己的作品,想像一下,你张厂长能做出来又如何?毕竟是你是搞硬件专业的,我不跟你比这个,但是我一个搞软件的,也还不是一样做出来了,你能来跟我比软件开发么?所以说,拯救世界,征服宇宙,得学汇编。



说有志者事竟成这话一点不假,用在张厂长身上特别适合,经过周总这次委以重任,他还是很快从C语言文盲进步到独自完成了芯片程序开发的水平。

    上交任务这天,他和绝影心里都揣着小九九。张厂长是基本上独自一人完成了整个任务,绝影呢,用汇编做出芯片的程序,在BIN体积上占了很大优势。这可难到了周总,本来绝影的任务应该是辅助张厂长做上位机的开发,他却偏偏要抢张厂长的功劳,奈何他又是技术主管,于是他耸耸鼻子说:“小绝用的汇编,小张用的C语言,这样吧,咱们明天来开个会,决定用谁的程序。”
分享到:
评论

相关推荐

    中文版Android程序员入门

    下载和安装Android SDK - 第三章(1) 10 下载Android SDK - 第三章(2) 10 为Eclipse配置Android Plugin - 第三章(3) 12 第四章 浏览Android SDK 14 浏览Android SDK - 第四章(1) 14 Android SDK是什么 - 第四...

    程序员编程艺术1-37章集锦

    程序员编程艺术第一~三十七章集锦。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    Android程序员入门(中文版).doc

    下载和安装Android SDK - 第三章(1) 10 下载Android SDK - 第三章(2) 10 为Eclipse配置Android Plugin - 第三章(3) 12 第四章 浏览Android SDK 14 浏览Android SDK - 第四章(1) 14 Android SDK是什么 - 第四...

    程序员编程艺术第一~三十七章集锦.pdf

    程序员编程艺术第一~三十七章集锦.pdf

    软件工程思想——经典搞笑版

    第三章“项目计划与质量管理”; 第四章“可行性分析与需求分析”; 第五章“系统设计”; 第六章“C++ 面向对象程序设计”; 第七章“测试与改错”; 第八章“维护与再生工程”。 附录“大学十年”可以充当饭后的...

    C语言高级程序员编程指南

    第三章 字符串 第四章 函数 第五章 键盘操作 第六章 数学 第七章 文件、目录和磁盘 第八章 数组、指针和结构 第九章 DOS和BIOS服务 第十章 内存管理 第十一章 日期和时间 第十二章 重定向I/O和...

    中文版Android程序员向导

    第三章 下载和安装Android SDK 第四章 浏览Android SDK 第五章Android程序:Hello World! 第六章 使用命令行工具和Android模拟器 第七章 使用Intents 和电话拨号盘 第八章 列表,菜单和其它Views 第九章 使用手机的...

    程序员编程艺术第一 ~二十七章(教你如何编程)高清完整PDF版

    本文档为程序员编程艺术系列:http://blog.csdn.net/v_july_v/article/category/784066,的PDF电子版

    程序员编程艺术:面试和算法心得.pdf

    o 2.2 寻找和为定值的两个数 o 2.3 寻找和为定值的多个数 o 2.4 最大连续子数组和 o 2.5 跳台阶 o 2.6 奇偶排序 o 2.7 荷兰国旗 o 2.8 矩阵相乘 o 2.9 完美洗牌 o 2.15 本章习题 第三章 树 o 3.0 本章导读 o 3.1 ...

    [程序员成长课堂:C.标准教程].陈国建等.扫描版.pdf

    第三篇 C++面向对象编程 第7章 类 148 第8章 类的初始化、赋值和析构 169 第9章 模板 190 第10章 面向对象程序设计 213 第四篇 C++编程实践 第11章 教学管理系统的C++实现 260 附录A Visual C++菜单中文注释 299 ...

    Android程序员入门

    第三章:下载和安装Android SDK 第四章:浏览Android SDK 第五章:Android程序:Hello World 第六章:使用命令行工具盒Android模拟器 第七章:使用Intents和电话拨号盘 第八章:列表,菜单和其他Views 第九章:使用...

    【高清完整pdf】高效程序员的45个习惯 敏捷开发修炼之道

    第1章 敏捷——高效软件开发之道 第2章 态度决定一切 1. 做事 2. 欲速则不达 3. 对事不对人 4. 排除万难,奋勇前进 第3章 学无止境 5. 跟踪变化 6. 对团队投资 7. 懂得丢弃 8. 打破砂锅问到底 9. 把握开发节奏 第...

    Turbo C高级程序员编程指南

    第三章 基本键盘、鼠标器及屏幕I/O 第四章 弹出窗口和错误报告 第五章 文件I/O 第六章 串函数库 第七章 高级指针和内存分配技术 第八章 Turbo C通用编程 第九章 目录实用程序 第十章 高级文件I/O 第十一章 Turbo C...

    《Delphi程序员经验点滴桌面、网络编程实例集锦》光盘2

    《Delphi程序员经验点滴桌面、网络编程实例集锦》 王小华 编著 北京希望电子出版社 兵器工业出版社 目录: 第一章 Pascal语言基本功 第二章 控件的应用与改造 第三章 应用程序与窗口 第四章...

    程序员编程艺术第一~三十七章集锦by_July

    从2011年4月写下第一篇至今,编程艺术系列已经写了37章,也就是说详细阐述了37个编程问题,在创作的过程当中,得到了很多朋友的支持,特别是博客上... 博客上http://blog.csdn.net/v_july_v 第38章再见。  July、

    《Delphi程序员经验点滴桌面、网络编程实例集锦》光盘1

    《Delphi程序员经验点滴桌面、网络编程实例集锦》 王小华 编著 北京希望电子出版社 兵器工业出版社 目录: 第一章 Pascal语言基本功 第二章 控件的应用与改造 第三章 应用程序与窗口 第四章...

    程序员面试攻略 电子书

    第三章 链表 第四章 树和图 第五章 数组和字符串 第六章 递归算法 第七章 其它程序设计问题 第八章 与计数、测量、排序有关的智力题 第九章 与图形和空间有关的智力题 第十章 计算机基础知识 第十一章非技术问题

    中文版Android程序员向导.pdf

    第三章 下载和安装 Android SDK 第四章 浏览 Android SDK . 第五章 Android 程序: Hello World! 第六章 使用命令行工具和 Android 模拟器 第七章 使用 Intents 和电话拨号盘 第八章 列表,菜单和其它 Views 第九...

    戏说面向对象程序设计

    第三章复制 VS复用 第四章业务的封装 第五章体会简单工厂模式的美妙 第六章工厂不好用了? 第七章用“策略模式”是一种好策略 第八章反射——程序员的快乐! 第九章会修电脑不会修收音机?——聊设计模式原则 第十章...

Global site tag (gtag.js) - Google Analytics