鱼C论坛

 找回密码
 立即注册
查看: 1162|回复: 3

[吹水] 《疯狂的程序员》- 46 - DHTML

[复制链接]
发表于 2018-9-2 09:29:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

                               
登录/注册后可看大图


缘起:
《疯狂的程序员》描写了绝影等程序员的成长之路,分为大学、工作、创业三部分。

作者笔下以绝影、BOSS liu、Bug Yang等为代表的程序员是大多程序员成长的真实写照,很多网友看过小说之后都说“这些事好像就是我身上发生的事情,但是我写不出来,绝影写出来了”。


本人将校对后的文章连载于吹水阁,并()形式进行吹水注解。

欢迎鱼油,在吹水阁连载把玩





绝影的预感没错,BOSS Liu的进步大大出乎了他的预料,正是所谓士别三日当刮目相看。

以前在公司技术虽然不比他高多少,但起码也是旗鼓相当,后来又在看雪论坛上发了一篇精华文章,自以为内力得到极大地提升。

没想到BOSS Liu也绝非等闲之辈,EB刚开始才几天,绝影就感觉到来自BOSS Liu的压力。

最初让BOSS Liu做消息服务器,绝影大大方方地拨给他一周时间,想一周时间要是能做得稳定,拿出来能直接用,尤不失下曹从事。

BOSS Liu满口答应,估计得还是保守了一点,没想到第二天便对绝影说:“消息服务器已经做好了,WinSock,以前在公司就专做这块,能不能给我个大点的CASE,免得一身武功荒废了。”

BOSS Liu说得轻松,绝影分明感觉到这里面有点挑衅的味道。

再看看他做的消息服务器,功能上也基本符合设计要求,在GPS公司锻炼了一年,BOSS Liu的MFC也用得炉火纯青。

单是那CAsyncSocket的使用便让绝影吃了一惊。

对于WinSock编程,绝影一直以来都是沿用罗云彬那本汇编书上的方法,用多了,便觉得刀枪根棍棒都耍得有模有样,至于MFC里的Socket类也不再去研究。

后来事实证明绝影的这一先入为主的思想真是害死人。

罗云彬第一版书上的WinSock编程部分存在一个致命的BUG――根本没有解决粘包问题。

虽然在第二版上修正了这个BUG,但还是让绝影花了好大的力气才让思想转过这个弯。

明白了这个问题,回过头来再想想以前做的Socket相关程序,难怪小规模回环测试一下还不错。

一放到服务器上耐力测试便运行得莫名其妙。

所以有些人老说:“怎么运行不对呢?明明没有错误啊。”

或者说:“我是世界上技术最牛的人了,还有比我牛的人吗?没看到啊。”

其实你找不到错误并不代表错误不存在。

同样,你看不到技术比你牛的人并不代表世界上就没有技术比你牛的人。

验收了BOSS Liu的产品,绝影半开玩笑地说:“BOSS啊,早知道你肯定有研究成果,咋的你就是不愿意拿出来分享呢?”

BOSS Liu摆摆手:“BOSS大人,你不是一直专注于汇编吗?这点东西对你来说算‘研究成果’?别的小弟我就不说了,要是这凭这玩艺也敢在你面前班门弄斧,那还不被你笑死!被你笑死的事情我不做!”

张厂长又去了几趟城隍庙,对他来说收获还是颇丰,绝影一直觉得他有点中饱私囊的嫌疑。

查看了购物清单,奈何都在公司允许范围之内,就是出门动不动就打车,次数多了,周总的意见也就大了起来。

开会的时候,周总严肃地说:“关于出差打车,我的意见是除非项目紧急,能坐公车就坐公车,又环保又省钱,这一直是国外推崇的啊。

绝影在下面撇撇嘴,暗自嘀咕道:“你以为咱都是出租车司机啊?跑大老远出差还得先调研公交车分布路线。”

等到指纹仪寄到公司,张厂长算是圆满完成任务。

那指纹仪放在桌上,和绝影原先想像的不一样,主要是体积太大,居然足足有自己的音响那么大。

张厂长左右摆弄着那台机器,像是自言自语道:“体积是大了点,不过根据技术手册,性能应该比较稳定,先让我来试试。”

试验结果出来,搞得张厂长好像丢了很大面子。

那机器性格也太古怪,还非得人来将就它,首先你得把手洗赶紧,就算稍稍多了点汗,影响识别效果不说,搞坏了机器责任还得自负;

然后你得端端正正把指头肉最多的地方不偏不倚地按到指定位置,必要时,你还得先目测一下那扫描器中心位置在哪里;

第三,你得听到嘟一声后才放手,放早了不行这容易理解,居然放晚了也识别不通过。

绝影失望地摇摇头,张厂长连忙说:“也有很精确的,不过价格太离谱了,用那个,是不切实际的。”

几个人决定先从UI模块开始,由绝影负责,指纹仪和摄像头模块可以同步进行,分别由张厂长和BOSS Liu负责。

UI的表现形式又是个大难题,用传统的Dialog Base和Single document肯定不行,版面实在太有限了。

要是用Multiple documents,各个页面的布局还得分别设计,页面之间的数据交换又是个大问题,说不定还得设计专门的数据交换模块。

绝影一筹莫展,转身看看BOSS Liu,这一看不要紧,吓得他差点报警。

本来BOSS Liu桌子四周的围栏比较高,他人整个钻进去也顶多冒点脑袋顶上的头发出来,绝影望了半天,望不到BOSS Liu的脑袋,却只见上面烟雾缭绕。

上次说哪个大商场里发生火灾,当场烧死百十来人,本来他打死也不相信,想一个大活人,两只脚好好的,还能让火给鳖死?

现在看到这场面,难道传说中的火灾已经发生在可怜的BOSS Liu座位上。

正惊慌失措,却见BOSS Liu突然站了起来,高呼一声:“有构思了!”

然后慢满掐灭所剩无几的烟屁股,把它往烟缸里使劲憋进去。

再看看他的烟缸,已经被他严重超载得不成样子。

游客,如果您要查看本帖隐藏内容请回复


再加上这一年来,BOSS Liu的烟瘾也随着他的技术不断进步,看三包烟盒空荡荡地摆在桌子上,绝影终于松了口气道:“吓死人了!”

这一说,BOSS Liu也发觉了自己的失态,忙说:“激动了激动了,对不起,对不起。”

“不是说这个,说你抽的烟。老子以为失火了。”

BOSS Liu打趣道:“BOSS啥时候变得这么敏感?要是一年前公司失火,如果只有一个人被烧死,那肯定是BOSS你,因为你肯定还坐在那里写程序。要镇定,你看那泰坦尼克号,就算马上就要沉了,人家拉提琴的还是一样拉着提琴,这是什么精神?这就是敬业精神!”

绝影白了他一眼,努力让自己镇定下来,问:“什么啊?啥事那么高兴。”

“摄像头这模块,我有构思了,就用VFW,网上好多现成代码,BOSS你以后不要再这样照顾我了,大CASE,我要大CASE。”

“大CASE,有!UI界面设计方案有没有?”

“最讨厌做界面。”

“有点深度好不好?什么对话框单文档多文档的都不要来,来就要来个高级的。就高级的,你有没有什么好点子。”

“高级的就是有,就怕技术不成熟?”

“有就尽管说,人有多大胆,地有多大产。”

“那个Norton总知道吧,新版本出来,我就是一直觉得他那界面很特别,你看,不就是个网页么?如果能把界面像网页那样做,不但容易美化,还容易批量生产,你想想,要在Dialog上调整某个Static的字体,还是得写点代码吧?网页就不一样了,直接在HTML上加个Font就搞定。”

绝影去BOSS Liu机器上看了看他的Norton,还真做得像个网页,什么按钮都没有,放上去鼠标就变成手的形状,就是个超链接。

再点开,便“卡”地一声跳到另外一个页面。

如果是这样的界面,真的能实现多个页面间的方便切换。

做软件,做终还得考虑用户的使用,你要是从登记页面转到分诊页面还得用菜单点上好几下,人家的意见就大得很。

周总一直以来的设计思想就是“一键式”,就点一下,想去哪个页面去哪个页面。

像CSDN论坛一样,导航栏摆左边,要去哪页你点一下就OK。

摆弄了半天,绝影自言自语道:“做这玩艺,好像是得费点功夫。”

“我就想BOSS应该没兴趣去做,还得等我以后自己去研究了。”

“放屁!就用这个方案!去查查,这是啥玩艺类。网上研究界面的人多得很,肯定有现成的。”

“不劳BOSS大架了,之前我稍微研究了一下,貌似这是个CDHTMLDialog类,VC2003里面已经实现了,不过VC6没有这个类。”

回到自己的位置,绝影认真看了看新版本的MSDN,真有这个类,不过是基于对话框的,这肯定也不符合要求。

因为至少得在左边要一个导航栏,用document/view结构就很简单,大不了就是换个View类。

按照微软的设计思想,有Ctrl就应该有View,有CDHTMLDialog就应该有CDHTMLView。

去网上查一查,乖乖,关键字CDHTMLView在Google上居然只有四个检索结果。

绝影突然犹豫了,他开始怀疑自己,在这之前,他从来没有犹豫过。

任何东西,只要周总陈董交给他,虽然对破解的CASE他会说:“不保证能做出来。”

但是他心里从来没想过什么东西我可能做不出来。

在他看来,只要有人能做出来,就一定有办法,所以每次有新的CASE,新的技术难题,他从来不会退缩,他总说:别人能做到,为什么我不能做到?

可是这个挑战太大了,DTMLView应该是刚出来不久,还没有很成熟的技术,公司在这方面更没有什么技术积累。

而摆在眼前是个实实在在的CASE,3个月以后就得把东西交给人家,这样做,万一做到一半做不动了,整个CASE就等于失败。

而且这种失败和DAP不同,对公司来说,这是直接的经济损失,信誉损失,对自己来说,“小绝啊,从来没让我们失望过”

这个神话将被打破,对BOSS Liu来说,难得的一次两个自认为高手的人在一起合作的机会以失败告终,这上非常惨痛的失败。

不知什么时候,BOSS Liu悄悄站在了绝影旁边,他没有打扰他,像是在等待他什么。

绝影像BOSS Liu一样突然站起来,说:“就用这个方案。”

BOSS Liu说:“好,我尽快把摄像头模块搞完,一起来搞这个。”

“嗯,我先认真调研一下,先写一个页面的Demo出来,以后其它页面就可以照这个批量生产了。”

几年以后,当BOSS Liu回忆起当初的情景,仍然心有余悸地对绝影说:“BOSS啊,其实当时你决定用DHTMLView是相当冒险的啊,我都捏了一把冷汗。”

绝影笑笑:“我是全身冷汗。”

如果这个世界上所有的技术都是专门一本书或者成册集中在一起,肯定还能造就一大批高手。

问题是往往事与愿为,就比如这CDHTMLView,Google上的技术资料虽然少得可怜,好多功能脑子里能想像但又找不到具体实现的代码。

好在HTML这东西当初设计得还不错,什么Javascript啊VBscript啊都能支持,这又给程序员极大的想像空间。

这功能C++代码实现不了,想办法用Javascript嵌入到HTML里面去,再想办法从C++里面调用Javascript,虽然步骤是多了一点。

而且据说Javascript效率不高,但是用户不知道,管他黑猫白猫,抓住老鼠就是好猫。

张厂长的指纹识别模块和BOSS Liu的摄像头模块都如期Close掉,绝影也把第一个简单页面做了出来。

看看CASE进度表,正好赶上,这让他悬着的心稍微放了一点下来。

赶紧又让张厂长开始做HTML页面设计,BOSS Liu继续投入到UI其它页面的开发。

BOSS Liu对这样的安排已经习以为常,却难坏了张厂长,他早已习惯在Close掉一个CASE后自己给自己放一段小假。

燕儿知道绝影忙,但是能说他什么呢?

就算说了也解决不了问题,还得碰一鼻子灰,她唯一能说的就是:“吃饭能不能慢点,你嚼一嚼不行吗?难道还非得赶那几分钟时间。”

其实吃饭真是件好事啊。

不但能填饱肚子,还能趁这点时间想点问题,平时都对着电脑,思维难免陷入死角。

走到饭桌子上来,思维便又稍微舒展开一点,这时候想问题往往有意想不到的收获。

绝影一边往嘴里扒饭一边对燕儿点头,本来他还想:“嗯,嗯。”

两声,奈何嘴里全是饭,开不了口,只觉得这饭菜送到嘴里,瞬间便进了胃,食道大大超负荷工作,不断抗议。

你抗议?

抗议有个P用,你抗议我就镇压你,加大剂量继续把饭菜往里送,那破赛扬366还能让我超到800多呢。

说猪八戒吃人参果一口吞掉,连味道都尝不出来,以前绝影不相信,那老猪的食道也宽得太离谱了。

听燕儿说到自己,这才来仔细想想饭菜到底是什么味呢?

还真没尝出来,可惜这一桌子有鱼有肉,就这样白白给浪费掉。

吃完饭回到公司,周总差异地问:“小绝,小刘,你们还不去吃饭?”

“已经吃过了。”

“哦,都吃过了,我还以为你们只是去上厕所呢。”

二人哼哈两声,便又扒在了电脑上。


未完待续...





如果有触动,别忘了评分


                               
登录/注册后可看大图


这位鱼油,如果喜欢《疯狂的程序员》,请订阅 专辑传送门)(不喜欢更要订阅



                               
登录/注册后可看大图

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-16 19:43:42 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-31 23:59:58 From FishC Mobile | 显示全部楼层
打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-11 16:46:53 | 显示全部楼层
dcsdkm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 10:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表