這次的專案,原本一直以為要寫出單機版的程式,但在最後幾個月,才知道要開發網路版的程式。網路版我有寫過 CGI,但卻沒處理過資料庫,那時心裡想,看來得開始學習 PHP+MySQL 了。
在最後一個多月,才開始在想程式怎麼做,其實不是故意要拖到那麼晚,而是資料都還沒整理好,怎麼有心情想程式怎麼寫?
大概在 3/23 左右,想想還是 Perl 最熟,於是試著用 Perl + MySQL,玩了二天,試出讀取資料庫的功能,心中就比較安穩了,PHP 就不用學了,就用 Perl 來搞定它吧。
原本打算資料整理到四月底,五月留個十天來開發程式,但事情總有意外,數位典藏突然要我們 4/28 之前交出書面報告,包括網頁的結果的畫面。這時心想慘了,我以為在最後一天把程式交出去即可,想不到要提前交報告。雖然報告不是我寫,但總要有東西讓人寫吧?在 4/20 左右,又花了二天做了一個很陽春的程式,然後告訴寫報告的同仁,你們就自己把畫面自行增加到你們滿意的樣子,我再來把程式做成你們報告的樣子。
到了五月初,其實我心裡是有點緊張了,畢竟時間剩不多,但資料還沒整理好,只好用快速的方法大致帶過,等到要寫程式時,只剩下一周了。
就在那一周,有時會莫名緊張起來,常常要深呼吸幾口,告訴自己不要緊張,太急反而會弄不好,一步一步來,會順利過關的。
話雖這麼說,但那一周真的是日夜趕工,往往清晨四五點才睡,睡四五個小時之後,又起來工作,最後一天 5/12 更是趕到天都亮了才去休息,但沒睡多久,就被電話吵醒,原來展覽會場的首頁弄錯位置,他們把 CBETA 首頁當成專案首頁,我只好立刻在 CBETA 首頁加上專案的連結,這樣才能由 CBETA 直接連到專案。
有個卡通叫中華一番,裡面的故事是小男主角小當家是一名很厲害的廚師,但他每次都在最緊要的比賽關頭,嘗試一些新的創意,不是用新的材料,就是用新的作法,每次都看的我很緊張,心裡不免犯嘀咕:什麼時候了,還在搞這些把戲?為什麼不端出幾道拿手好菜呢?
想不到這次我寫程式也有這種事情,為了程式更好寫,試了許多新方法。Perl 原本的特性就是簡單,但我卻用了很多 c 語言常用的指標功能,那是讓許多人覺得複雜的功能,而且不只使用一層指標,有在雜湊中放置陳列指標,也在陣列中放在置雜湊指標,這些無非是為了讓寫程式更快更方便,並不是刻意在緊要關頭作怪,我想小當家或許也是有同樣的心情吧。
那陣子我發明了一個蓋房子的比喻,資料庫的建置,就像在蓋一棟鋼骨大樓,當一切資料備妥時,就如一棟大樓的完成,但美中不足的,是還沒貼磁磚。寫出應用介面就像貼磁磚,寫出愈多的應用介面,就是貼更多的磁磚。
我常想,若是在大樓揭幕當天,卻發現磁磚還沒貼完,那是多糗的一件事,雖然可能只要再一天,但那已經會讓自己的英名一掃而空了。而試著寫那些奇怪的程式,就有如放下貼磁磚的工作,去研究如何一次貼一排?甚至如何一次貼一面牆?我心裡也知道,若研究失敗,就浪費了不少時間,但在時間快不夠的情況下,能找到好方法,又怎麼能不試?
有幸皇天不負,終於在 5/13 交出 98% 的成果,事實上在後來的二天,我才全部完成我想像中的一切。據說當天的評價還不錯,很值得欣慰了。明年同一時間,應該會有更好的成果推出。
- 瀏覽次數:15682
發表新回應