2008年11月21日 星期五

極品程式碼--refactoring踢到鐵板(Part 2)

從事軟體這個行業,其中一個有趣的地方在於,程式碼要給機器(或compiler)看,也同時要給人看。我發現自己寫程式也是依照這樣的順序。迷糊健忘的我,永遠記不住任何一種語言的語法,常常用的library也記不住用法。幾乎都是靠IDE提醒、靠查閱文件,以及一些試誤的過程,直到讓電腦總算照我的意思走。接下來就要開始refactor,整理架構。把程式整理到看起來好讀又自然,再開發下一個功能。如果不在意程式碼好讀,功能一走通就繼續做下一個工作,過一兩天那支程式可能連自己都看不懂。

至於這次遇到的極品程式碼,為甚麼能發展到這麼複雜?歷代貢獻過的原作者們為甚麼能駕馭這樣的怪物,而我發呆幾天了就是看不懂?應該有什麼關鍵是我沒抓到的。(不肯承認自己特別笨。)

2008年11月20日 星期四

極品程式碼--refactoring踢到鐵板(Part 1)

最近遇到一個老舊的.Net系統,一直不斷出問題,而且程式碼複雜到大家都不敢碰。恰巧這陣子在練習refactoring的功力,所以手癢之下,決定拿其中最常惹麻煩的一個功能來翻修。

哇!這隻程式真是可怕。簡直像是經過Obfuscated的程式。正常的coding有可能做出這麼難下手的程式嗎?不知道當時原作者怎麼能想出這麼難懂的程式。只能用極品來形容。真要去追蹤只會頭暈目眩,像是天龍八部的珍瓏棋局一樣,內力不夠的話去盯著它看會不會吐血走火入魔呀!

究竟有多可怕呢?下面舉例講述其中一個字串變數strSysInfo生命週期,一個坎苛多變的命運。

2008年11月16日 星期日

拍這裡,拍現在---談寫實主義的海角七號


因為我非常懶得上電影院,家中也沒裝第四台,所以看電影機會不多。不過還是慕名地去劇院看了海角七號這部有趣的電影。

我覺得這部電影成功的原因是:
1. 這是台灣少見的,很徹底的寫實主義的電影。很真實,讓大多數人都有共鳴。
2. 選擇了非常討好的題材。一群失意的藝術愛好者,最後在舞台上大獲成功,這個題材總是容易賣座。

導演在這麼拮据的經費和資源下拍攝,但是仍能兼顧票房考量,我個人是很認同的。電影、表演藝術或是音樂工作者都應該要記得觀眾與票房。李安導演也常說,他的目標就是要拍好商業片。