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