程式架構
小時候不懂事的時候,覺得寫程式應該跟寫(英文)作文一樣,從左寫到右,從上寫到下,把我想做的事情的順序寫出來就好了。當第一次將 "Hello World!" 一氣呵成寫出來,完全不用除錯就能跑,那種成就感真是放大到無限。
事情當然不是這麼簡單,學寫幾個小程式還 OK,當想寫的規模越來越大之後,許多教科書警告的情況會一下子通通出現。這時候的關卡是,你要決定要不要繼續走這條路來混飯吃,要的話,就得好好讀一下教科書上寫甚麼,前輩們說些甚麼,程式要小塊小塊寫,小塊小塊測,把這種 "simple, even naive" 的想法放一邊。隨著這條不歸路一直走,甚麼模組化設計啦, OOP 啦,還有最近流行的 test driven design,層層疊加上去。寫程式越來越像是刻字,而不是畫畫,樂趣越來越少。
最近想給一個舊程式加一個新功能,就童心大發,想要一次把 code 先寫完,再來一次總測試,看能不能一次到位。有點像一直循規蹈矩,小心翼翼不敢犯錯的人,偶而也想刺激一下,發個酒瘋。
結果可想而知。
我的心得是: 寫程式不要像高爾夫球的初學者一樣,運氣好揮出好桿,就以為那是自己的實力。