2005/6/6

debug 除蟲大作戰

寫程式的人對debug是又愛又恨,很少有人能一擊中的,程式能在第一次撰寫的就考慮到所有可能發生的錯誤狀況,也因此debug對每一支程式來說都是必經之路,對程式設計師來說,debug的經驗可以決定撰寫程式時,debug要花費多少時間。

家裡住的地方旁邊不遠處剛好有個四部汽車寬的大水溝,一進入夏天,即使住在十樓高的地方,因為蚊子太多,每天都得處理除蟲的工作。很奇怪的是,我是家裡最會打蚊子的人。

曾經使用液態電子蚊香,但現在已經不再使用的原因是,這種蚊香有個奇怪的味道(據說是除蟲菊),有新聞報導說除蟲菊精,雖然毒性低身體也代謝得快,吸太多也有不少問題。所以現在家裡使用的是電蚊拍,因為電蚊拍面積大,停在牆上的蚊子也不會察覺蚊拍慢慢地接近,等到發現時要飛起來已經逃脫不出蚊拍的範圍了。

但使用電蚊拍有個大問題,你要先找到目標蚊,牆壁、天花板上是最常發現他們駐足的地方,但地板、衣櫥表面、桌椅上也有可能會發現他們。家裡玫瑰白色的牆面與天花板及石英地磚上最容易看到他們,很容易就可以看到一點黑。

觀察的時候就像是照相機一樣,可以先把視覺調整到一塊一塊大面積的狀態,掃瞄過後,就會看到有一點一點黑色特別奇怪的地方,然後就得調整視覺的範圍,並將焦點鎖定在這個黑點上,一旦確定它是蚊子,就可以拿出電蚊拍來,但這個動作常會被牆面上偶然出現掉漆的洞給騙了,不過這些小洞都是固定的,家裡住那麼久,哪個地方是洞都很清楚了。

客廳的書櫃與臥室裡,因為櫃子是胡桃木深色的,再加上雜物比較多,所以比較不容易發現蚊子的蹤跡,這個情況下只能夠用櫃子或是桌子的切面來觀察,如果有不正常的突起物,就有可能是有異物在上面,是不是蚊子就不一定了。

晚上睡覺的時候,燈光通常是關起來的,如果耳朵旁邊有蚊子嗡嗡叫,把燈突然打開的話,蚊子就會停下來,就容易可以在牆上找到牠們。

另外還有一種方法就是拿東西引誘蚊子過來,因為我的平均體溫最高,所以最常被蚊子叮,平常坐在那邊,蚊子就會自動來找我,眼角有喵到黑色飛行物體的時候,就是要打蚊子的時候了。

Test-Driven Development TDD (by Kent Beck) 是流行的一種程式設計開發策略,這種方式主張要先撰寫測試程式碼,再藉由這些可重覆使用的測試碼,對撰寫的程式逐次測試,以求快速且正確地開發出零缺點的系統。但很明顯的,網頁的高階介面測試碼,就比測試後端的Model來得困難,也許要求公司買一些網頁的高階測試軟體,測試時會來得輕鬆許多。

所以我找蚊子的過程其實也就是Test-Driven的測試程序,自動化處理後,相信可以cover整個住家系統的debug程序。