📖 ZKIZ Archives


矽巷啁啾:網頁程式捉蟲記

1 : GS(14)@2012-01-21 17:27:43

http://hk.apple.nextmedia.com/te ... 307&art_id=16005013

任何程式,無論是 facebook到 Gmail到憤怒鳥到高登,都有可能有寫錯的地方。寫錯的,行內叫 Bug,直譯為「蟲」。
舉個例,你上 facebook,想將肖像換成昨晚跟女神的合照,明明按了上載的掣,但肖像仍然是舊的那張宅樣,於是投訴。 facebook團隊如果睬你的話,會自己試試,先確認不是你發雞盲看錯字按了取消。確認有問題,就開始調查原因,即「捉蟲」。找到原因之後,就「滅蟲」。
除蟲可以用上很多時間。見過有例子,蟲太多,編程人每天 7小時,有 6小時用在除蟲。除蟲時間越長,剩低寫新功能的時間越短,可以致命。整個除蟲過程,最花時間的,通常是捉蟲,即調查。要減低除蟲的時間,就要減低捉蟲的時間。查案的速度,取決於調整的人對出事的位置有多熟悉,越熟越快。對編程人來說,越遠的事情越陌生。也是說,越近期做出來的蟲,越快捉得到。
另一個因素,是調查的範圍。越老的蟲,經過越多的改動,調查範圍越闊,時間就越長。蟲是編程人的天敵。在以前公司,有一次,看見編程隊伍每人的電腦屏幕,都插着一個用兩把膠尺綁成的十字架(當時還只有厚屏幕)。我問是驅甚麼魔,原來當日有重大改動推出,大家都怕會喚醒大堆埋藏已久的蟲,希望借超自然力量擺平。
完全滅蟲耗時極長

諷刺的是,蟲不是天跌下來,是團隊自己弄出來的,屬自作孽。沒有人記下來的事情沒有發生過,同樣道理,沒有用戶發現的蟲等於不存在。
人有不同價值,蟲也各有不同價。最值得滅的,是影響最多人,而且受害人被害得最慘的蟲。越不會在未來跑出來害人的蟲,越不值得滅。
有蟲,是因為編程人測試時,試不了所有可能出現的情況,所以漏了眼。要保證完全沒有蟲,就要花極長時間測試,測試時間越長,剩低寫新功能的時間越短,可以致命。
你未試過發現 facebook有蟲,不是因為 facebook花極長時間測試,而是因為有太多人用,到你用時,早已被發現和消滅。
宋漢生
PermaLink: https://articles.zkiz.com/?id=277385

Next Page

ZKIZ Archives @ 2019