當我在寫程序的時候,我究竟在寫些什么?


    當我寫下標題之后,面對着一張白板,發現不知道要寫什么。或許我還沒准備好這個主題。一個村上春樹式的標題,或許是因為我想表達得藍調一些,那么就還是寫一寫,就當是懷舊吧。

    記得大學時,同學們都在用VC6寫C++程序,而我為了標新,用Cygwin下的vim寫,后來干脆在自己的JOY BOOK 3000上安裝了一個Fedora 5,用着那個被修改成半透明的Console下的vim,感覺很爽的樣子。現在想來,如果一個人寫C++不用IDE,那不是裝X就是傻X。

    大學時,我們的專業課沒有Java,不過我買了一本《Java參考大全(第五版)》,自學了一下。看着JDK5的那個不倫不類的泛型,以及一些C++中很平常,但到了JAVA中就不見了的語言機制,之后感覺“這個語言不行啊!”。但到現在已經做了六七年的Java程序員之后覺得:能用Java做的,干嘛要用C++呢?裝X么?

    要形容當時的我,可以套用一個比較俗套的語法:哥寫的不是程序,是裝逼。

 

    比業之后進入一家公司工作,這家公司的主要開發語言是Java。因為我在學校沒怎么用過Java,所以被認為技術水平不行,安排到SIT組做系統測試了。在這里碰巧又找到了裝X的機會——一般人在用Loadrunner做性能測試時,登錄的用戶名是在Vuser中配置了很多個,然后挨個用的,而我是調用Oracle的OCI接口在數據庫中直接查的——明顯是有勁沒處使了,要是現在我再用Loadrunner,直接用VUser就挺好了——不過裝一下也是有收獲的,至少學會了99%的Oracle用戶都沒聽說過的OCI接口(連當時我買的《Oracle 9i/10g 參考大全》中都沒介紹OCI的)。

 

    后來終於有機會進入了研發團隊,做起了SSH框架下的系統。但骨子里的C++情結讓我一直在尋找使用C++的機會,最后終於是在公司的手持終端(WinCE的系統)上開發了一個拼圖游戲(與終端開發組的一個同事合作開發)。后來合作開發那哥們又把這個程序移植到他的魅族M8(當年的國產神機)上去了,看起來還不錯。現在新一代的手持終端都改用Android了,C++已經幾乎退出了公司內部開發使用。

    在這個拼圖游戲的開發中,我還是學到了不少東西:我負責開發游戲的圖象處理,完全沒有用到任何Win32的控件,直接用DirectDraw畫滿整個手機屏幕,最開始實現時發生一個有趣的現象——當把方塊移動的速度調到很慢時,移動方塊時,游戲用戶無法做其它操作,原因是整個界面全部在主線程下運行了,當主線程在忙着處理圖像時,其它的事件就排上隊了。后來竟然在這樣一個簡單的程序中,我還是寫了一個線程池在里面(當時C++11標准還沒有頒布,標准庫中還沒有std::thread,所以這個線程池直接使用了微軟的API)——復雜的消息行為放到線程中運行,主線程就可以處理用戶的點擊事件了。

    在做公司的系統時,第一次接觸了Ext2。當時做頁面經常會痴迷於搞一些無聊的東西,比如:一個panel是不是要有frame?是不是要有border?border要幾個像素才好看?在某個地方用到(√5-1)/2這個比例會不會給用戶的感覺更好?……當時經常為幾個像素,把頁面調來調去。說得高級一點就是“如何給客戶一個更好的體驗?”,不過在用戶體驗上我還是不入門,怎么做都很丑的樣子。

 

    未完,待續……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM