# 46 DHTML
絕影的預感沒錯,BOSSLiu的進步大大出乎了他的預料,正是所謂士別三日當刮目相看,以前在公司技術雖然不比他高多少,但起碼也是旗鼓相當,后來又在看雪論壇上發了一篇精華文章,自以為內力得到極大地提升,沒想到BOSSLiu也絕非等閑之輩,EB剛開始才幾天,絕影就感覺到來自BOSSLiu的壓力。
最初讓BOSSLiu做消息服務器,絕影大大方方地撥給他一周時間,想一周時間要是能做得穩定,拿出來能直接用,尤不失下曹從事。BOSSLiu滿口答應,估計得還是保守了一點,沒想到第二天便對絕影說:“消息服務器已經做好了,WinSock,以前在公司就專做這塊,能不能給我個大點的CASE,免得一身武功荒廢了。”
BOSSLiu說得輕松,絕影分明感覺到這里面有點挑釁的味道。再看看他做的消息服務器,功能上也基本符合設計要求,在GPS公司鍛煉了一年,BOSSLiu的MFC也用得爐火純青,單是那CAsyncSocket的使用便讓絕影吃了一驚。對于WinSock編程,絕影一直以來都是沿用羅云彬那本匯編書上的方法,用多了,便覺得刀槍根棍棒都耍得有模有樣,至于MFC里的Socket類也不再去研究。
后來事實證明絕影的這一先入為主的思想真是害死人。羅云彬第一版書上的WinSock編程部分存在一個致命的BUG――根本沒有解決粘包問題,雖然在第二版上修正了這個BUG,但還是讓絕影花了好大的力氣才讓思想轉過這個彎。
明白了這個問題,回過頭來再想想以前做的Socket相關程序,難怪小規模回環測試一下還不錯,一放到服務器上耐力測試便運行得莫名其妙,所以有些人老說:“怎么運行不對呢?明明沒有錯誤啊。”或者說:“我是世界上技術最牛的人了,還有比我牛的人嗎?沒看到啊。”其實你找不到錯誤并不代表錯誤不存在,同樣,你看不到技術比你牛的人并不代表世界上就沒有技術比你牛的人。
驗收了BOSSLiu的產品,絕影半開玩笑地說:“BOSS啊,早知道你肯定有研究成果,咋的你就是不愿意拿出來分享呢?”
BOSSLiu擺擺手:“BOSS大人,你不是一直專注于匯編嗎?這點東西對你來說算‘研究成果’?別的小弟我就不說了,要是這憑這玩藝也敢在你面前班門弄斧,那還不被你笑死!被你笑死的事情我不做!”
張廠長又去了幾趟城隍廟,對他來說收獲還是頗豐,絕影一直覺得他有點中飽私囊的嫌疑,一一查看了購物清單,奈何都在公司允許范圍之內,就是出門動不動就打車,次數多了,周總的意見也就大了起來。開會的時候,周總嚴肅地說:“關于出差打車,我的意見是除非項目緊急,能坐公車就坐公車,又環保又省錢,這一直是國外推崇的啊。”
絕影在下面撇撇嘴,暗自嘀咕道:“你以為咱都是出租車司機啊?跑大老遠出差還得先調研公交車分布路線。”
等到指紋儀寄到公司,張廠長算是圓滿完成任務。那指紋儀放在桌上,和絕影原先想像的不一樣,主要是體積太大,居然足足有自己的音響那么大。
張廠長左右擺弄著那臺機器,像是自言自語道:“體積是大了點,不過根據技術手冊,性能應該比較穩定,先讓我來試試。”
試驗結果出來,搞得張廠長好像丟了很大面子。那機器性格也太古怪,還非得人來將就它,首先你得把手洗趕緊,就算稍稍多了點汗,影響識別效果不說,搞壞了機器責任還得自負;然后你得端端正正把指頭肉最多的地方不偏不倚地按到指定位置,必要時,你還得先目測一下那掃描器中心位置在哪里;第三,你得聽到嘟一聲后才放手,放早了不行這容易理解,居然放晚了也識別不通過。
絕影失望地搖搖頭,張廠長連忙說:“也有很精確的,不過價格太離譜了,用那個,是不切實際的。”
幾個人決定先從UI模塊開始,由絕影負責,指紋儀和攝像頭模塊可以同步進行,分別由張廠長和BOSSLiu負責。
UI的表現形式又是個大難題,用傳統的DialogBase和Singledocument肯定不行,版面實在太有限了,要是用Multipledocuments,各個頁面的布局還得分別設計,頁面之間的數據交換又是個大問題,說不定還得設計專門的數據交換模塊。
絕影一籌莫展,轉身看看BOSSLiu,這一看不要緊,嚇得他差點報警。
本來BOSSLiu桌子四周的圍欄比較高,他人整個鉆進去也頂多冒點腦袋頂上的頭發出來,絕影望了半天,望不到BOSSLiu的腦袋,卻只見上面煙霧繚繞。上次說哪個大商場里發生火災,當場燒死百十來人,本來他打死也不相信,想一個大活人,兩只腳好好的,還能讓火給鱉死?現在看到這場面,難道傳說中的火災已經發生在可憐的BOSSLiu座位上。正驚慌失措,卻見BOSSLiu突然站了起來,高呼一聲:“有構思了!”然后慢滿掐滅所剩無幾的煙屁股,把它往煙缸里使勁憋進去。
再看看他的煙缸,已經被他嚴重超載得不成樣子,本來核定載煙屁股30根,BOSSLiu卻硬生生至少憋了至少130根進去,再加上這一年來,BOSSLiu的煙癮也隨著他的技術不斷進步,看三包煙盒空蕩蕩地擺在桌子上,絕影終于松了口氣道:“嚇死人了!”
這一說,BOSSLiu也發覺了自己的失態,忙說:“激動了激動了,對不起,對不起。”
“不是說這個,說你抽的煙。老子以為失火了。”
BOSSLiu打趣道:“BOSS啥時候變得這么敏感?要是一年前公司失火,如果只有一個人被燒死,那肯定是BOSS你,因為你肯定還坐在那里寫程序。要鎮定,你看那泰坦尼克號,就算馬上就要沉了,人家拉提琴的還是一樣拉著提琴,這是什么精神?這就是敬業精神!”
絕影白了他一眼,努力讓自己鎮定下來,問:“什么啊?啥事那么高興。”
“攝像頭這模塊,我有構思了,就用VFW,網上好多現成代碼,BOSS你以后不要再這樣照顧我了,大CASE,我要大CASE。”
“大CASE,有!UI界面設計方案有沒有?”
“最討厭做界面。”
“有點深度好不好?什么對話框單文檔多文檔的都不要來,來就要來個高級的。就高級的,你有沒有什么好點子。”
“高級的就是有,就怕技術不成熟?”
“有就盡管說,人有多大膽,地有多大產。”
“那個Norton總知道吧,新版本出來,我就是一直覺得他那界面很特別,你看,不就是個網頁么?如果能把界面像網頁那樣做,不但容易美化,還容易批量生產,你想想,要在Dialog上調整某個Static的字體,還是得寫點代碼吧?網頁就不一樣了,直接在HTML上加個Font就搞定。”
絕影去BOSSLiu機器上看了看他的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不同,對公司來說,這是直接的經濟損失,信譽損失,對自己來說,“小絕啊,從來沒讓我們失望過”這個神話將被打破,對BOSSLiu來說,難得的一次兩個自認為高手的人在一起合作的機會以失敗告終,這上非常慘痛的失敗。
不知什么時候,BOSSLiu悄悄站在了絕影旁邊,他沒有打擾他,像是在等待他什么。絕影像BOSSLiu一樣突然站起來,說:“就用這個方案。”
BOSSLiu說:“好,我盡快把攝像頭模塊搞完,一起來搞這個。”
“嗯,我先認真調研一下,先寫一個頁面的Demo出來,以后其它頁面就可以照這個批量生產了。”
幾年以后,當BOSSLiu回憶起當初的情景,仍然心有余悸地對絕影說:“BOSS啊,其實當時你決定用DHTMLView是相當冒險的啊,我都捏了一把冷汗。”
絕影笑笑:“我是全身冷汗。”
如果這個世界上所有的技術都是專門一本書或者成冊集中在一起,肯定還能造就一大批高手,問題是往往事與愿為,就比如這CDHTMLView,Google上的技術資料雖然少得可憐,好多功能腦子里能想像但又找不到具體實現的代碼,好在HTML這東西當初設計得還不錯,什么Javascript啊VBscript啊都能支持,這又給程序員極大的想像空間。這功能C++代碼實現不了,想辦法用Javascript嵌入到HTML里面去,再想辦法從C++里面調用Javascript,雖然步驟是多了一點,而且據說Javascript效率不高,但是用戶不知道,管他黑貓白貓,抓住老鼠就是好貓。
張廠長的指紋識別模塊和BOSSLiu的攝像頭模塊都如期Close掉,絕影也把第一個簡單頁面做了出來,看看CASE進度表,正好趕上,這讓他懸著的心稍微放了一點下來。趕緊又讓張廠長開始做HTML頁面設計,BOSSLiu繼續投入到UI其它頁面的開發。
BOSSLiu對這樣的安排已經習以為常,卻難壞了張廠長,他早已習慣在Close掉一個CASE后自己給自己放一段小假。
燕兒知道絕影忙,但是能說他什么呢?就算說了也解決不了問題,還得碰一鼻子灰,她唯一能說的就是:“吃飯能不能慢點,你嚼一嚼不行嗎?難道還非得趕那幾分鐘時間。”
其實吃飯真是件好事啊。不但能填飽肚子,還能趁這點時間想點問題,平時都對著電腦,思維難免陷入死角,走到飯桌子上來,思維便又稍微舒展開一點,這時候想問題往往有意想不到的收獲。
絕影一邊往嘴里扒飯一邊對燕兒點頭,本來他還想:“嗯,嗯。”兩聲,奈何嘴里全是飯,開不了口,只覺得這飯菜送到嘴里,瞬間便進了胃,食道大大超負荷工作,不斷抗議。你抗議?抗議有個P用,你抗議我就鎮壓你,加大劑量繼續把飯菜往里送,那破賽揚366還能讓我超到800多呢。說豬八介吃人參果一口吞掉,連味道都嘗不出來,以前絕影不相信,那老豬的食道也寬得太離譜了。聽燕兒說到自己,這才來仔細想想飯菜到底是什么味呢?還真沒嘗出來,可惜這一桌子有魚有肉,就這樣白白給浪費掉。
吃完飯回到公司,周總差異地問:“小絕,小劉,你們還不去吃飯?”
“已經吃過了。”
“哦,都吃過了,我還以為你們只是去上廁所呢。”
二人哼哈兩聲,便又扒在了電腦上。
- 1 Hello World
- 2 DOS
- 3 第一個夢想
- 4 電源里的病毒
- 5 尋址方式
- 6 黑客
- 7 《黑客防線》
- 8 魔術師的雙手
- 9 又是尋址方式
- 10 墮落
- 11 轉折點
- 12 “影總”
- 13 告別光棍的光棍節
- 14 女人的敵人
- 15 魚和熊掌
- 16 兼職
- 17 另類的方法
- 18 RMB500
- 19 天天上網的工作
- 20 應聘
- 21 MFC
- 22 畢業設計
- 23 出差
- 24 BOSSLiu
- 25 應聘的美女
- 26 多線程
- 27 畢業
- 28 黑屏
- 29 C++和ASM
- 30 RMB2000
- 31 大CASE
- 32 BOSSLiu的離去
- 33 燕兒的工作
- 34 HONDA
- 35 技術主管
- 36 DAP
- 37 動搖
- 38 張廠長的遙控器
- 39 真正的注冊機
- 40 精華和糟粕
- 41 網吧
- 42 工資和房價
- 43 背出來的面試題
- 44 真正的大CASE
- 45 向業主致敬
- 46 DHTML
- 47 先進性
- 48 非洲
- 49 技術經理
- 50 BugYang
- 51 游戲
- 52 大棒和胡蘿卜
- 53 Architect
- 54 EB失敗
- 55 北京
- 56 反匯編器
- 57 貧民窟
- 58 大爺
- 59 BugYang的心事
- 60 Nothing Impossible
- 61 周總的斷言
- 62 曹操的馬
- 63 BugYang進京
- 64 BugYang離去
- 65 辭職
- 66 球不是一個人踢的
- 67 短信
- 68 外掛
- 69 小朱
- 70 分手
- 71 New
- 72 西班牙布局
- 73 100萬用戶
- 74 Bayerische Motorenwerke J
- 75 搞IT的民工
- 76 瘋狂的程序員
- 77 開店
- 78 土匪的新工作
- 79 fatal error
- 80 夭折
- 81 丁骨牛排
- 82 資本家的艱辛
- 83 相親
- 84 BOSScLiu和VB
- 85 王老板
- 86 裝孫子
- 87 CASE Closed
- 99 后記