星期六, 6月 24, 2006

WTF: The Terminate()or

WTF總是能讓我發笑,這一篇也是很絕:
某個便宜的銷售系統使用上都還好,等到開放給客戶使用之後突然出問題,所有檔案無預警地全部消失。某人花了十小時追查,發現以下的程式碼:
function terminate() {
exec("rm -r /var/public_www/$_SESSION['Tempfile']");
}

讓我想起第一次正式工作時寫DOS下的繪圖系統,而且是沒有DOS extender的16位元程式。在圖塊搬移時要不斷偵測64K segment邊界,遇到顯示記憶體和圖塊來源的邊界時都要特別處理。程式寫到煩了,於是在兩者都發生的狀況就只寫了一行abort()之類的東西,然後祈求這種狀況不會發生。這種願望當然是不可能實現的,果然不久之後就有某人回報這個問題,而我也只好乖乖地去做本來就該做好的事。這與約耳測試裡所說的infinite defects methodology:要計算指定字串高度時直接寫return 12,有異曲同工之妙。不過自此之後我比較能面對現實,也愈來愈相信墨菲定律了。
=== 本文結束 ===

2 則留言:

tu 提到...

嗯,感謝 MPH 從有趣的實例中,回顧了自己這般有意思的寫程式經驗。

為了求取短期的方便與利益,抄走捷徑,結果通常是得不償失。但是,為什麼這樣的行為卻層出不窮呢?是不是因為,我們其實有著「以後再說」的心態呢?

被掛掉的阿尼 提到...

到了黃河邊再說^^