無聊的下午,來個小小的總結吧,想到哪寫到哪,呵呵。
這幾天被項目里的MFC折磨在,雖然自己耐著性子又開始在學,但是還是覺得進度非常緩慢。其實去年的時候也有過一次用MFC做的項目實訓,但第一次接觸MFC的時候就覺得那就是一怪物,純的!!寫起程序來都覺得惡心。于是乎,在心里油然而生的抵抗情緒作用下,我毅然去當了項目組的TL,也不再愿去碰那堆亂七八糟的MFC代碼了。
我自從進入大學以來,學習編程已經有近4年了,從一開始我接觸到的就是OO的思想,所以到現在為止,在潛意識里仍然還保留著當年老師一遍遍跟我們講授的經典名言“everything is an object”。哈哈,對這句話真是很有感情啊!
編程語言,最開始的時候我是學JAVA的(好吧,我承認我連C語言都沒學過,不要BS我,不是我的錯)。學校里安排的課程大多也都是用的JAVA。年少無知的日子是多么美好啊,JAVA曾經一度是我心目中最完美的語言,以致于對第一次在數據結構課上老師所使用的那個被稱為C++的東西意見天大。“為什么要使用這么垃圾的語言啊!”,可我當時真就是這么想的,“語法復雜,甚至連標準都不統一,內存都要自己手動管理”。就這么稀里糊涂的過了幾年,慢慢的,由于課程需要開始耐著性子看些C++的書,一路看下去卻如同哥倫布一樣看出了個“新大陸”。從那門名叫“C++高級程序設計的選修課上”開始,我迷上了這門當年讓我厭惡不己的語言。準確的說,現在我的JAVA都已經荒廢多時了,把博客放到這也是這個原因。
可是夢想成為一個C++高手的路卻不是那么好走的。
同寢室的同學一路沿著JAVA那條線走來,現在已經整天研究些ExtJS, Hibernate,Spring,Struts(當年還因為把這個詞讀成structs被人暴笑 T_T)這些在我看來都已經是兩個世界的東西了,更別說那些css,javascript之類他們早已非常熟悉的東東了。寢室有一哥們也就用了兩三晚上就用PHP整出一網站出來,雖然知道有模板,但還是讓我感覺驚訝不己。
反觀我現在,除了會用VS拖幾個控件之外貌似就只能在cmd下面研究一下cout,cin了。我都不明白這是為什么?時間也用了不少,可是還是感覺做不出來什么像樣的東西。不少人都跟我說,C++是用來做底層的,是要注重效率寫算法的,可心里還是非常不平衡啊。
于是這次趁著畢業前的一點空閑時間,我又耐下心來打算學學MFC。看了一點關于windows API的基礎知識。一開始寫MFC,我,又徹底的暈菜了。某天我想把一個int值轉成string顯示出來的時候。我被神奇的卡住了,而且還是一上午 T_T 神哪,在JAVA,C#里這算是問題嗎?之后經過若干次嘗試,求助N本書之后,問題終于解決了。使用stringstream轉換成功。剛高興了沒半分鐘,問題又來了。顯示在CEdit控件里的就是亂碼,郁悶吶。最后我把書上的代碼拿來抄了一遍,我KAO,居然還是不行!
于是乎,我坐下來,緩了下神。然后,不是開始再次的嘗試,而是開始在心中暗罵MS。它娘的,沒事整這么多變量啊,宏定義干嘛啊。用string不行么,非要弄出個CString;LPCTSTR這鬼東西不就是個char*,莫非換個馬甲就變帥了?
/*
---------------
文中
的確是內心所想,各位看官一笑而過即可,不必與我爭論其中正誤
-------------------
*/
?
BS微軟N次之后,我又開始思考一個困擾我很長時間的問題。
對于生性喜歡有挑戰性的我來說對新鮮的事物總是想一探究竟。當年我第一次被MFC嚇跑之后,我一直對windows下的GUI編程念念不忘。時常想尋找一個比較“完美”的C++實現的方法。也是那個時候,我才知道人們對于MFC的爭執。似乎反對派將其說的一無是處(當時看的時候不禁心中暗爽,又為自己不學這個找了個理由,呵呵)也是那個時候,我還了解了QT,VCF,WTL還有wxWidgets等等庫。可問題是which one ? 我那個時候連被人爛熟的MFC都一點不會,就開始學這些我聽都沒聽過的東東?這些東西真像我想要的那么好么?就是我學了,別人用這個嗎……當時腦子里的問題多多,還糾結了頗久一段時間。無奈后來還是選擇都放下了。因為,我要準備考研了……
痛定思痛
我認真總結經驗之后,得出結論,我必需要選擇一樣了,是好是歹完了之后再說吧,于是就有了我與MFC的第二次搏斗!此外,還有一個很嚴重的問題就是,關于基本功的問題。以前,我自認為學習C++時間不短了,原來都是井底之蛙。想要精通任何一項技能都是不容易的。更何況C++這門曾經被多少人瘋狂研究過的“超級語言”。
基本功差吧,那就補吧。可是從哪里補起呢,據說C++是從C語言里演化出來的,那么從C開始?
No,我的OO神經這樣告訴我。
那好,看點C++的新東西吧。于是我看那本評價頗高的C++Primer。嗯,書上這么教導我們:孩子,多使用C++的新特性吧,STL里有容器,用吧;char* 字符串,扔到垃圾桶吧,這里有更好的string……哈哈,看書的時候心里巨爽,這語法,多么美妙。
可是我一合上書就深深體會到一個道理——現實是殘酷的!我眼里所看到的代碼,全都是各種各樣的混合體。char* 的字符串依然滿天飛,還有那些C語言里我都沒見過的函數。
唉,混亂啊,what do I do ?
呼~~ 這個點不早了,先寫到這歇了。明天太陽一樣出來,日子照過,慢慢來吧。