《那些年啊,那些事——一个程序员的奋斗史15》
生活随笔
收集整理的這篇文章主要介紹了
《那些年啊,那些事——一个程序员的奋斗史15》
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
技術(shù)總監(jiān)又給段伏櫪布置任務(wù)了,這次和計(jì)算器和錄音機(jī)不同,并不需要他去寫代碼,而是要想辦法讓程序去適應(yīng)產(chǎn)品。公司做的GPS導(dǎo)航儀的屏幕分辨率是320x240,屬于典型的3.2'的LCD,和現(xiàn)在市面上鋪天蓋地的5'和7'尺寸不同,那時(shí)候的4.3'也是很稀少,3.2'是絕對(duì)的主流??蓪?duì)于這樣的一個(gè)主流,微軟卻視而不見(jiàn),最簡(jiǎn)單的例子,控制面板中很多選項(xiàng),其對(duì)話框的很多都是超出屏幕的大小。雖然可以通過(guò)Platform Builder來(lái)設(shè)置設(shè)備的顯示模式,但對(duì)話框大小不是480x320,就是是240x320,無(wú)論采用那種模式,都是無(wú)法適應(yīng)3.2'的LCD。而技術(shù)總監(jiān)交代給段伏櫪的任務(wù),就是解決這一難題。
????
??? 雖然大家都知道,Windows CE是開(kāi)放源代碼的,并且這些控制面板的程序確實(shí)也是通過(guò)這些源代碼編譯出來(lái)的,那么直接更改然后再重新編譯不就好了?段伏櫪也是這么想的。一般來(lái)說(shuō),變更對(duì)話框的大小,只要更改相應(yīng)的.res文件即可,雖然段伏櫪是菜鳥(niǎo),但好歹也弄過(guò)幾個(gè)程序,對(duì)于這點(diǎn)也是心知肚明。可當(dāng)段伏櫪使用EVC來(lái)重新對(duì)控制面板的組件進(jìn)行布局之后,卻傻眼了:這些.res無(wú)法再通過(guò)鏈接了!段伏櫪不信邪,持續(xù)嘗試了好幾個(gè)控制面板的組件,都是如此,這下他可傻眼了。本來(lái)以為很簡(jiǎn)單的事情,還覺(jué)得是老柳嫌麻煩不去弄,原來(lái)這還是一個(gè)大難題啊!
????
??? 反正段伏櫪之前所做的工作也從來(lái)沒(méi)有順利過(guò),雖然這時(shí)候遇到了挫折,但也不至于灰心喪氣。于是還是和往常一樣,通過(guò)搜索引擎來(lái)查找資料。不經(jīng)意間,在CSDN論壇的一篇帖子上找到一個(gè)專門研究Windows CE的QQ群,突然有一種找到組織的感覺(jué),趕快申請(qǐng)加入。沒(méi)想到,剛加進(jìn)去,才發(fā)現(xiàn)群里正在熱火朝天地辯論。事情是由一個(gè)網(wǎng)名為“水域”的QQ挑起的。
????
??? 水域:“你們這些固守C++的,全是SB!”
????
??? 像這樣的話語(yǔ),自然會(huì)激起Q友的反擊,和水域干上的,是另一個(gè)名為“專屬天使”的QQ。
????
??? 專屬天使:“你才SB呢!用C#有什么了不起?”
????
??? 水域:“你們?nèi)且蝗汗滩阶苑獾睦霞一?#xff01;不懂得去運(yùn)用新技術(shù),肯定要被社會(huì)淘汰!一群SB!”
????
??? 專屬天使:“C++是萬(wàn)能的!”
????
??? 水域:“哼!還萬(wàn)能呢!匯編語(yǔ)言才是萬(wàn)能的,什么都要轉(zhuǎn)為匯編語(yǔ)言才能進(jìn)而成為二進(jìn)制代碼,可你看看,現(xiàn)在邏輯復(fù)雜一點(diǎn)的單片機(jī)程序,還有幾個(gè)人是用匯編的?都是用C!”
????
??? 看起來(lái),水域似乎是力挺C語(yǔ)言,但接下來(lái)話鋒一轉(zhuǎn):“對(duì)于Windows CE來(lái)說(shuō),C++就相當(dāng)于單片機(jī)的匯編,C#就相當(dāng)于單片機(jī)的C!兩者的差距,不可同言而語(yǔ)!”
????
??? 這還沒(méi)完,水域繼續(xù)說(shuō)到:“你們之所以堅(jiān)持C++,一方面是自己不肯接受新事務(wù),另一方面是要誤導(dǎo)初學(xué)者!因?yàn)镃++難學(xué),初學(xué)者學(xué)了C++后,很難趕得上你們現(xiàn)在的水平,你們自然就高枕無(wú)憂了。如果是C#,初學(xué)者學(xué)一段時(shí)間,就能上手寫程序,你們這些老家伙就要被炒了!”
????
??? 最后,水域丟下一個(gè)問(wèn)題:“你們說(shuō)C#不好,那么我問(wèn)你們,C#有哪里不好了?”
????
??? 段伏櫪用的正是C++,雖然他并不反對(duì)C#,甚至可以說(shuō),如果有時(shí)間有精力他也會(huì)去學(xué)學(xué)C#,但現(xiàn)在這么貶低自己正在使用的語(yǔ)言,他也覺(jué)得非常不爽,特別是水域的語(yǔ)氣。于是,在網(wǎng)上流傳很多C#的缺點(diǎn),他正好拿來(lái)用。還不等專屬天使回話,段伏櫪啪啪就打字回應(yīng):“C#的效率太低了!”
????
??? 正如所料,水域立馬回話:“又是人云亦云!效率怎么低了?你有沒(méi)有測(cè)過(guò)?低多少?對(duì)使用有沒(méi)有影響?”
????
??? 段伏櫪頓時(shí)語(yǔ)塞,這不就像老柳讓自己用查表方式去計(jì)算除法一樣嗎,照搬以前的經(jīng)驗(yàn)去瞎指揮,而不去考慮實(shí)際的運(yùn)用。段伏櫪也只是在網(wǎng)上看了人家的評(píng)論,自己也沒(méi)有親自去實(shí)踐,自然也不會(huì)知道這效率差多少。其實(shí)程序員這一職業(yè),沒(méi)有那么多似是而非的方面,是就是,不是就不是,容不得半點(diǎn)含糊。比如說(shuō),一個(gè)檢測(cè)病人生命特征的程序,應(yīng)該按照什么規(guī)范去檢測(cè)就要怎么去做,不能說(shuō)似乎這樣可以,那樣也行,因?yàn)楹芸赡芫湍敲匆稽c(diǎn)偏差,一條生命就此消失。雖然段伏櫪并不是做生命相關(guān)的設(shè)備,但其中的道理卻是想通的。這個(gè)和做行政的,人事之類的處事方式非常不同,他們?yōu)榱瞬灰鸶嗟拿?#xff0c;往往說(shuō)話只說(shuō)六分,剩余的四分需要自己去揣摩。至于是對(duì)還是錯(cuò),那就無(wú)所謂了,只要不對(duì)公司的利益有損害即可。
????
??? 水域的話語(yǔ),就像一個(gè)巴掌,狠狠地扇在了段伏櫪的臉上,感覺(jué)火辣辣的,無(wú)以反駁。很顯然,群里面的人對(duì)于這個(gè)問(wèn)題,大家都沒(méi)譜,因?yàn)闆](méi)有人真正去實(shí)際測(cè)試過(guò)。只不過(guò)這也暴露了一點(diǎn),QQ群里面的人基本上都是做應(yīng)用的,如果有人是做系統(tǒng)級(jí)別的話,只需要丟出一句:“你用C#寫寫驅(qū)動(dòng)看看?”估計(jì)水域就無(wú)從下手了。因?yàn)閃indows CE是嵌入式設(shè)備所用,和桌面PC的應(yīng)用環(huán)境大為不同。做桌面運(yùn)用的,其實(shí)真的是很少去接觸驅(qū)動(dòng)級(jí)別的;但對(duì)于Windows CE來(lái)說(shuō),卻是截然不同:如果你不懂得C++,那么你如何去看底層的BSP包代碼?如果連BSP代碼都看不懂,那板子又該如何調(diào)試起來(lái)?板子都無(wú)法啟動(dòng),還談何做產(chǎn)品?相對(duì)于桌面以應(yīng)用為重,嵌入式接觸更多的是底層驅(qū)動(dòng)級(jí)別。當(dāng)然,這些對(duì)于剛出茅廬的段伏櫪來(lái)說(shuō),是完全不懂這一層的關(guān)系的。
????
??? 水域有一種傲氣,混混灑灑說(shuō)了那么多,覺(jué)得自己不屑與這些頑固的老家伙為伍,罵了幾句之后,毅然退群。對(duì)于很多程序員老鳥(niǎo)來(lái)說(shuō),類似的事情不勝枚舉,充其量只是一個(gè)小小的插曲,但對(duì)于段伏櫪今后的態(tài)度,卻產(chǎn)生了深遠(yuǎn)的影響:任何事情,即使對(duì)方說(shuō)得言之鑿鑿,也要自己親自測(cè)試一番,眼見(jiàn)才能為實(shí),絕對(duì)不能人云亦云!
????
??? 不過(guò)加入這個(gè)QQ群,段伏櫪也不算是完全沒(méi)有收獲。當(dāng)段伏櫪提出如何更改程序?qū)υ捒虼笮〉臅r(shí)候,就有人建議不妨使用exeScope看看。exeScope是桌面Windows常用的一個(gè)更改界面的工具,很多朋友都喜歡用它來(lái)漢化界面。Windows CE下面的程序,雖然不能直接在Windows XP上運(yùn)行,但程序的組織還是相同的。段伏櫪抱著試試看的心態(tài),用exeScope更改了幾個(gè)Windows CE程序,放到公司的設(shè)備中:一切正常!根據(jù)LCD大小更改后的程序,完美地運(yùn)行在了Windows CE中!段伏櫪感覺(jué)就跟撿到了寶貝似的,不過(guò)有了上一次的教訓(xùn),這次他只是偷偷地呆在座位上樂(lè)呵樂(lè)呵。
????
??? 其實(shí)對(duì)于程序員來(lái)說(shuō),絕對(duì)不能拘于形式。最重要是明確自己的目標(biāo),需要達(dá)到什么樣的目的,至于使用什么手段,則不是所關(guān)心的。如果段伏櫪一直不轉(zhuǎn)變自己的觀念,總是從代碼的角度入手 ,雖然最終也可能解決問(wèn)題,但所耗費(fèi)的時(shí)間,絕對(duì)比直接更改程序文件要多。
????
??? 段伏櫪是菜鳥(niǎo),這沒(méi)錯(cuò),但他身上卻有一種百折不撓,尋根問(wèn)底的特性。雖然解決了程序大小不能適應(yīng)屏幕的問(wèn)題,但他還是決心去探究為什么采用EVC更改后的.res會(huì)導(dǎo)致Windows CE系統(tǒng)無(wú)法編譯的真正原因。老天不負(fù)有心人,段伏櫪發(fā)現(xiàn),如果是用EVC更改了.res文件并且保存的話,EVC會(huì)添加不少額外的東西,甚至是原來(lái)的描述符也會(huì)被更改。而這些添加的或是被更改的字段,正是系統(tǒng)無(wú)法正確編譯的真正原因!如果要解決這問(wèn)題,只能采用記事本來(lái)進(jìn)行修改。但沒(méi)有了IDE,坐標(biāo)都不好設(shè)置,肯定還要花費(fèi)很多的精力,既然問(wèn)題已經(jīng)解決,并且根源也找到了,段伏櫪就不再去深究。
????
??? 只不過(guò)段伏櫪覺(jué)得,自己遇到這樣的問(wèn)題,說(shuō)不定別人也可能會(huì)遇上。既然如此,為何不將它寫出來(lái)呢?恰好搜索問(wèn)題的時(shí)候,找到了CSDN這個(gè)網(wǎng)站,并且上面不是剛好有個(gè)博客系統(tǒng)嗎?說(shuō)干就干,段伏櫪趕緊注冊(cè)了一個(gè)賬號(hào),并且將這過(guò)程整理為一篇《WinCE 系統(tǒng)界面修改偏方(一)》的文章,堂而皇之地發(fā)表于博客之中。雖然文筆很嫩,言語(yǔ)很不通順,并且其中的知識(shí)點(diǎn)很可能為眾多高手所不齒,但畢竟這是自己的第一篇技術(shù)文章,所謂的兒不嫌母丑狗不嫌家貧便是如此。只不過(guò)對(duì)于一個(gè)新人來(lái)說(shuō),發(fā)表的一篇沒(méi)什么技術(shù)含量的文章,實(shí)在不會(huì)引起很大的波瀾。發(fā)表了近一周之后,點(diǎn)擊率也寥寥無(wú)幾,而這為數(shù)不多的點(diǎn)擊率,有一半還是出自于自己的手。幸好段伏櫪對(duì)此也有心理準(zhǔn)備,本來(lái)就不報(bào)很大希望的事情,談何來(lái)的失望?只不過(guò)這一口子一開(kāi),就再也剎不了車。在往后的日子里,只要段伏櫪知道了點(diǎn)新東西,就會(huì)往博客上放。每次往上面寫文章的時(shí)候,段伏櫪總會(huì)幻想:會(huì)不會(huì)有一天,自己這些文章能夠結(jié)集出版呢?只不過(guò)這念頭只是轉(zhuǎn)瞬即逝,自己又不是韓寒,僅僅是一個(gè)小小的菜鳥(niǎo),有誰(shuí)去看重自己?雖然覺(jué)得出書(shū)的概率很渺茫,不免有點(diǎn)失望,但段伏櫪還是暗暗下決心,不管結(jié)果如何,寫技術(shù)博客這習(xí)慣,一定要堅(jiān)持下去,就像自己堅(jiān)持走程序員這條路一樣。
????
????分類:?癡人夢(mèng)囈2011-07-23 09:03?568人閱讀?評(píng)論(24)?收藏?舉報(bào)
????
??? 注:
??? BSP是板級(jí)支持包(Board Support Package)的縮寫,是通常用在嵌入行業(yè)中的一個(gè)術(shù)語(yǔ),用來(lái)代表在一個(gè)特殊硬件平臺(tái)上快速構(gòu)建一個(gè)嵌入操作系統(tǒng)所需的原始資料或者二進(jìn)制軟件包。BSP的作用是支持操作系統(tǒng),使之能夠更好的運(yùn)行于硬件平臺(tái)。BSP是相對(duì)于操作系統(tǒng)而言的,不同的操作系統(tǒng)對(duì)應(yīng)于不同定義形式的BSP,包括Windows CE、Linux、Vxworks等。SoC/CPU廠商應(yīng)向其芯片的用戶提供一個(gè)基本的BSP包,以支持主板廠商或整機(jī)制造廠商在此基礎(chǔ)上定制和開(kāi)發(fā)各種商用終端產(chǎn)品。
總結(jié)
以上是生活随笔為你收集整理的《那些年啊,那些事——一个程序员的奋斗史15》的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 读史以明志,把握好自己的明天
- 下一篇: Adobe的学者约翰—沃洛克博士