我接触程序的时间也不算长,也不算太短。从高一开始接触Pascal,完全是为了竞赛。只是最后这竞赛也没吃到什么好果子。高一下的时候有些经不住Win32窗口程序的诱惑,开始摆弄Delphi。但是无奈当时水平实在太差(连类和对象都分不清楚),肯定也就写不出来什么像样的程序。
高三开始学习C++,也是从 cout << "Hello World!" << endl 开始的。
所以许多年来,我一直都局限于程序自身,但是从来就没有完整的没有什么Bug的完成一款桌面程序。从Delphi,到C++Builder,到VB,到MFC,到WTL,到Python,莫不是如此。
究其原因是因为我一直以来就没怎么深刻理解Windows消息机制,每次写Win32程序都要对界面琢磨半天,可能还要搞大量的Prototype来证明方案的可行;写完了又花费大把大把的时间去调试界面程序。而且又往往会在使用的时候才发现问题。
早先用Delphi的时候,我犯了一个极度愚蠢的错误,就是错误的把程序的界面框架当作了程序框架。换句话说,一个最明显的情况也就是,把所有的代码/逻辑都放在了EventHandler里面。这样做的坏处不言而喻。稍微有点工程意识的,都知道这样做是很不好的。逻辑按照逻辑,界面逻辑按照界面逻辑,这之间应当是松耦合的。