我曾遇到最大的一個bug

來源: 外刊IT評論  發布時間: 2010-05-25 09:25  閱讀: 1670 次  推薦: 0   原文鏈接   [收藏]  

  Bug從來不是個讓人高興的東西。然而也有例外,那就是當你弄明白了這個Bug的時候。本文講就是我曾經遇到的一個最大的、至今仍未解決的 Bug的故事。 

  年青時,我曾經開發了一些魔獸世界的插件。那時候我除了 沉迷于這個游戲之外,還對開發游戲外掛非常感興趣,你知道,那是一種非常上癮的感覺,特別是當發現有新的公共API公布時,真是興奮的不得了。 這樣我也就有了巨大的動力去學習 Lua 語言了,它是個非常有意思的編程語言。

  當時,我和我的一個朋友開發了一個叫做 FriendNet 的插件,這是個非常棒的插件。它能幫助我們在游戲中解決一個很大的麻煩: 找到你真正的朋友,防住探子。這個插件會把你游戲中的好友清單傳送給你的所有朋友。反過來,也會取回他們的好友列表。最終,你的好友數量會不斷增加,而且里面不會有探子。

  你知道,插件API里絕對不會給你提供任何形式的網絡交流通道的,所以,我們只好一種黑客注入方式來傳送好友清單。 我們的做法是把這個清單序列化,通過在線游戲聊天室發給對方,用私語通知對方接收這些名單。

  是的,現在大家都玩Facebook,但幾年前我們就是通過這種地下方式在這個虛擬世界里擴展我們的社會關系網的。而且不亦樂乎。

  畢竟,FriendNet還是有一些問題存在。P2P程序都是很難維護,每當你有Bug修復、版本升級時,你很難讓所有的用戶都立即升級他們的 程序。 于是出現了不同版本一起在線通信,導致了很多莫名其妙的事情出現,很難定位是那塊出了問題。

  其中有一個bug特別的讓人困惑,難以確定:每隔幾天,FriendNet就會出現一些不正常的信息,會導致這個插件的有些界面上一片混亂。我們收到了相當多的bug反饋,而且確信這個問題是真實存在的,但不管我們怎樣的努力測試,總是不能復制這樣的現象。這是個來自地獄的bug。最終我們放棄了,為了推托責任,我們就說這個問題是由于魔獸惡劣的API導致的。

  如今我已經不玩魔獸世界好幾年了,然而突然有一天我明白了這個問題是怎樣產生的了。當明白了是什么地方的出來問題后,我意識到我們是被習慣性的 思維方式蒙蔽了。

  你知道,你在游戲中扮演的人物在魔獸世界里是可以喝醉的。 當了喝了太多的烈酒后,你的屏幕開始變形,變模糊,而且你走路走不了直線。 同樣,當你在聊天時敲入一段文字:

  Penelope says: I'm so wasted

  電腦會給你顯示成:

  Penelope says: I'm sho washted ...hic!

  因為FriendNet是把所有的交流信息全部打包發送的,所以每當在群發的人中有喝醉的時,信息就會變成亂碼。

  FriendNet 已經在插件網站上消失很長時間了,估計你現在已經不能下載到它了。我懷疑也許它還能在現在的最新版的魔獸世界里使用。但我始終沒有去修復這個bug,每當 我回想起這個事,我都會覺得非常有趣。

0
0
 
標簽:程序人生
 
 

文章列表

arrow
arrow
    全站熱搜

    大師兄 發表在 痞客邦 留言(0) 人氣()