1. 程式人生 > >那些年啊,那些事——一個程式設計師的奮鬥史 ——40

那些年啊,那些事——一個程式設計師的奮鬥史 ——40

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

    雖然黃華中和武總並沒有太多過問應用程式的編寫狀況,但已經幾天沒有敲打程式碼的段伏櫪手已經開始癢癢的了。忙裡偷閒固然好,但也不能太過分,畢竟需要做的東西,再怎麼拖,也是必須要完成的。放下看了大約1/3的《C++ primer》,段伏櫪開始了音樂播放器的旅程。
   
    如果要做一款傑出的音樂播放器,特別是想在音質方面鶴立雞群,那麼熟悉編碼解碼是非常重要的。可這對於數學不怎麼樣的段伏櫪來說,這的確是一個難以逾越的鴻溝。所幸公司的這音樂播放器,只要能夠正常播放音樂檔案,簡單的快進快退停止之類能實現就可以了,至於音質神馬的,都是浮雲。因此對於段伏櫪來說,首先要知道的是,在Windows CE下如何去播放。
   
    現在的程式設計師是幸福的,至少比網路還不發達的時候的程式設計師要幸福多了,有什麼問題,可以直接問度娘和谷哥。只不過,搜尋出來的結果,卻是非常沮喪的。基本上所有的帖子,關於視訊播放的,都是採用Windows Media Player這個ActiveX控制元件。而這個控制元件所使用的基礎嘛,卻偏偏是MFC。自從認識到Win32 API好處的段伏櫪,斷不可能回頭再去整這個折磨人要死的MFC。其實退一萬步來說,即使段伏櫪想吃回頭草,情不甘心不願地回頭打理MFC,註定也是一個非常大的杯具——因為Windows CE沒有Windows Media Player這個控制元件!那有沒有不使用這可望而不可及控制元件的方法呢?答案是:不知道。即使段伏櫪跑去書店,翻看相應的多媒體書籍,所用的,也都是Windows Media Player!
   
    一籌莫展!難道這個音樂播放器的命運,只能歸於流產?這實在太打擊人了吧?搜尋了大半天都毫無頭緒,段伏櫪覺得有點灰心了,暫時也沒有太多的心情再去一頁一頁網頁檢視,索性便在QQ上和徐雅思聊起天來。自從那次給徐雅思修完電腦之後,段伏櫪很順利地就拿到了她的QQ號碼,平時有事沒事也會在QQ上聊上幾句。不能不說,QQ這的確是一個非常好的玩意,在一定程度上增進了之間的感情。特別是有一些人,如果使用電話,那麼會緊張得不知道該說什麼;但如果是在QQ,因為還有思索的緩衝空間,反而聊得不亦樂乎。段伏櫪和徐雅思目前就處於這樣的狀況,如果段伏櫪打電話,肯定匆匆忙忙不到十句就會結束通話;但在QQ上,卻能滔滔不絕。從另一個角度來說,QQ其實也稱得上劃時代的紅娘,估計通過QQ,先慢慢熟悉,然後進一步發展為情侶,最後走到一塊的為數不少。沒有QQ,或許這世界上就多了很多單身剩男剩女,特別是屬於程式設計師這一族群來說。當然羅,如果沒有QQ,或許也沒那麼多小三……
   
    薑還是老的辣,別人的一句話,很可能便是解脫自己苦苦思索無果的指明燈。雖然老柳屬於那種絕對不會和別人分享自己成果的自私分子——這點淋漓盡致地表現在他給公司的電腦設定密碼,並且不在座位上就一定會將電腦鎖住——但對於不是他所擁有的東西,或是他不屑於乃至掌握不了的知識要點,他還是非常樂意分享的。當然咯,這所謂的“分享”也不要抱有太高的指望,他最多會說:“哎呀!這個簡單,你可以看看Windows CE下面的原始碼嗎,那不是有例程嗎?”如果在繼續深問下去,比如在哪個資料夾,或是什麼工程,那麼他直接啞火了。往往這時候,他會很有氣勢地非常嚴肅地說:“你這樣懶惰不行啊!你需要自己去找,這樣子記憶才夠深刻。”
   
    每次遇到老柳的挖苦或是欲言又止,段伏櫪總在心理暗暗罵道:“就那麼點技術,有必要保守得那麼嚴密嗎?”或是:“這東西如果你不懂,直接承認又不會丟你面子,哪有人什麼都懂的?可你有必要這麼怒氣衝衝地教訓人嘛?”可這一次稍微有點不同,雖然只是一句話,但卻給了段伏櫪無限的想象:Windows CE是開源的,而它自帶了媒體播放器。它既然沒有Windows Media Player控制元件,那麼這自帶的播放器是如何實現的?這個,如果檢視程式碼的話,應該能知道一些端倪吧?
   
    想到這一環節,段伏櫪頹廢的心情一掃而空,和徐雅思說了句要忙去,就開始在煙波浩渺的Windows CE程式碼中搜尋起來。說天無絕人之路也可,或是皇天不負有心人也行,段伏櫪終於找到了播放媒體檔案的方法。準確地說,應該是找到了能夠播放媒體檔案的工程。雖然這工程最後生成的程式並不是自帶的媒體播放器,而是一個最簡單的測試播放的小程式,但對於僅僅只是要了解媒體播放如何運作的段伏櫪來說,這已經足夠了。甚至可以說,這精巧的小程式,比那複雜的播放器要好很多,它可以沒那麼多邏輯層,可以讓段伏櫪能夠將所有的精力放在如何播放這個要點。也正是如此,沒有花費多少時間,段伏櫪已經明白如果要播放媒體檔案,大致需要呼叫哪些函式,以及這些函式的次序。
   
    不過段伏櫪並不滿足於此,因為很快他就發現了一個問題。如果將這些操作多媒體的函式放到介面的邏輯層裡,那會顯得程式碼非常雜亂,特別是可讀性非常糟糕,遠遠不如使用控制元件的簡便。但這似乎也有解決之道:自己將這些操作封裝為一個類,只是暴露出類似於Play,Pause等介面,介面邏輯層只需要簡單呼叫即可。這個和之前做UI介面時只是根據每個介面劃分,更顯得有邏輯和地道一些。在這樣的背景之下,段伏櫪的第一個真正意義上的功能類——CMedia—— 誕生了。   
   
    其實對於很多程式設計師來說,如果公司的管理比較疏鬆,允許員工複製程式碼的話,他們都會攜帶自己所寫的程式碼至下一家公司。只不過,當去到下一家公司的時候,絕對不會直接將之前的程式原封不動使用,因為這畢竟還多少牽扯到一些版權問題。然而更重要的是,原封不動的話,不一定適合新公司對於程式在邏輯層的要求。而這時候,很多程式設計師就僅僅是使用之前程式的部分程式碼,比如播放器的話, 只是使用播放核心的程式碼;至於邏輯層,則是根據新要求重新構造。這個時候,能否將核心程式碼提煉出來,便決定了後續的使用是否能夠快速簡便。也正是如此,便有了一個眾所周知的業界潛規則:老程式設計師的跳槽,肯定是帶著幾個類到處跑。換個角度來說,將程式碼根據用途不同進行分層,不僅對於現在的公司有利,對於後續的個人也不無益處。
   
    以前在浩程微的時候,吃飯從來不會和老柳和黃華中一起,但搬過來之後,只有這幾個人,自然是大家一起了。當然,這還是有個人例外,張文香是自己帶飯,中午自己呆在辦公室。吃飯是在旁邊,一家名為藍白的快餐廳。點菜方式和學校食堂差不多,菜分門別類,自己隨意挑選;選擇完畢之後,坐在座位上,會有專門的人來計算價格。如果有時候吃的非常快,當計單員還沒過來的時候,吃完的那個菜有時候還不用記賬。至於最後的費用,不是每個人分攤,大部分時間是老柳和黃華中買單。但次數多了,總是過意不去,所以有時候段伏櫪和沈俊還會搶著買單。
   
    這天,段伏櫪因為需要到華強北買個電池,所以沒有和大家一起吃飯;然後聽別人說,中電上面有個快餐,據說味道還不錯,段伏櫪便去換個口味。說實話,味道其實說不上非常美味,但至少還過得去,不過價格就比較貴,吃一次可以,吃多了就覺得有點捨不得了。吃完飯後,段伏櫪坐上電梯,同行的還有一對小情侶。
   
    誰說中國人不開放?已經非常和國際接軌了!你們這對小鴛鴦,在俺這個單身漢之前牽牽手也就罷了,親親嘴俺也忍了,可你們能不能不這麼亂摸?亂摸也不要這麼明目張膽吧?手都伸進去了!麻煩你們兩個親熱的時候,能不能回家再繼續啊?這現場的表演,你讓俺這個只能靠自己雙手的單身漢來說,情何以堪啊?
   
    這時候,一個空靈的聲音傳來:“夠~淫~蕩~”
   
    這聲音,立馬激起了這對小鴛鴦的憤怒:“你說什麼?有種你再說一遍!”
   
    很顯然,這鴛鴦的聲音是衝著段伏櫪來的。可段伏櫪愣了,因為他什麼話都沒有說啊!
   
    女鴛鴦的潑婦氣質出來了:“不是你說的,難道這裡還有別人嘛?什麼夠淫蕩?我們做什麼,關你什麼事情?你不看不就好了嗎?像你這樣的人,肯定找不到女朋友,一輩子就只會用雙手!”
   
    俺現在沒有女朋友,是沒錯。可您佬能不能留點口德啊?不僅詛咒俺找不到女朋友,還要一輩子用手!難道非要俺的手長老繭您佬才滿意啊!
   
    段伏櫪有口難辯,但還是不能不辨:“真的不是我……”
   
    女鴛鴦火更大了:“你以為你故意變聲音,我就聽不出來啊?做賊心虛,你這種人,假惺惺的……”
   
    女鴛鴦還打算繼續撒野,這時候,那個空靈的聲音又出來了。不過,這時候段伏櫪聽清楚了,什麼“夠淫蕩”,那是“going down”!英文!中文的意思是正在往下!
   
    不知道這對鴛鴦是否聽懂了這英文,但至少他們已經知道這不是段伏櫪發出的聲音。電梯剛到一樓,門一開啟,這對小鴛鴦飛一般地跑了,只留下目瞪口呆的段伏櫪。不識英文的小鴛鴦傷不起啊,傷不起……
        
    
    注1:CMedia類原始碼:

http://blog.csdn.net/norains/article/details/1712083

 

 

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述