我接觸程序的時(shí)間也不算長(zhǎng),也不算太短。從高一開始接觸Pascal,完全是為了競(jìng)賽。只是最后這競(jìng)賽也沒吃到什么好果子。高一下的時(shí)候有些經(jīng)不住Win32窗口程序的誘惑,開始擺弄Delphi。但是無奈當(dāng)時(shí)水平實(shí)在太差(連類和對(duì)象都分不清楚),肯定也就寫不出來什么像樣的程序。
高三開始學(xué)習(xí)C++,也是從 cout << "Hello World!" << endl 開始的。
所以許多年來,我一直都局限于程序自身,但是從來就沒有完整的沒有什么Bug的完成一款桌面程序。從Delphi,到C++Builder,到VB,到MFC,到WTL,到Python,莫不是如此。
究其原因是因?yàn)槲乙恢币詠砭蜎]怎么深刻理解Windows消息機(jī)制,每次寫Win32程序都要對(duì)界面琢磨半天,可能還要搞大量的Prototype來證明方案的可行;寫完了又花費(fèi)大把大把的時(shí)間去調(diào)試界面程序。而且又往往會(huì)在使用的時(shí)候才發(fā)現(xiàn)問題。
早先用Delphi的時(shí)候,我犯了一個(gè)極度愚蠢的錯(cuò)誤,就是錯(cuò)誤的把程序的界面框架當(dāng)作了程序框架。換句話說,一個(gè)最明顯的情況也就是,把所有的代碼/邏輯都放在了EventHandler里面。這樣做的壞處不言而喻。稍微有點(diǎn)工程意識(shí)的,都知道這樣做是很不好的。邏輯按照邏輯,界面邏輯按照界面邏輯,這之間應(yīng)當(dāng)是松耦合的。