Bug,是程式設計中的術語,是指在軟體執行中因為程式本身有錯誤而造成的功能不正常、當機、資料遺失、非正常中斷等現象。 >作為一隻程式設計教阿,最討厭的當然還是看到bug--不要吐槽為啥教阿會討厭看到蟲,本教阿就是吃馬卡龍維生的(X 而bug為什麼會叫做bug呢,這必須從1947年9月9日的事件說起。當時葛麗絲·霍普(Grace Hopper)發現了第一個電腦上的bug。他們在Mark II電腦上工作時,整個團隊都搞不清楚為什麼電腦不能正常運作了。經過工程師們努力不懈的(?)查找,發現原來是一隻飛蛾飛入了一臺電腦內部而引起的故障。這個團隊把錯誤解除了,並在日誌本中記錄下了這一事件。也因此,人們逐漸開始用「Bug」(原意為「蟲子」)來稱呼電腦中的錯誤。 而現今的bug通常都不是指稱硬體,而是程式錯誤這件事情。常見的bug本教阿粗分為幾種: * 邏輯錯誤 這種錯誤就是設計程式的時候失誤造成的。注意這種錯誤不見得來自於你寫的部分,也有可能是你引用的函式庫天生不良所造成。 如果是自己寫的東西出錯,基本上追蹤一下,把過程中所有的表現都使用標準IO列出,理論上都有機會解決。萬一是別人的函式庫......可能就得花點時間分析原始碼了。 * 記憶體錯誤 通常好發在使用指標的時候(X 當程式使用到比較多的記憶體操作時很容易發生,這種錯誤非常麻煩,因為很有可能錯誤是發生在A處,但程式報出錯誤的時候是在B處--更討厭的是沒報出錯誤,但系統記憶體就是慢慢地被塞滿直到整台電腦卡死的時候。 雖然前面說指標好發,但實際上python也會有類似的錯誤,而且因為難以直接底層操作所以發現了也很難改...... * 不明原因的錯誤 與其說不明原因,不如說是誤判原因。 有時候會發生,明明就看見了bug發生的位置,修改之後也沒報錯誤,但卻發生速度越來越慢或者是其他地方開始報錯。這種時候就是誤解了錯誤發生的成因--此時的修正不只沒有幫助,反而會引發更多問題。 有一句話說的好: >我強烈的意識到,生命中剩下的好日子,都將耗費在給自己的程式找錯誤上頭。 by Maurice Wikes 身為一隻程式設計教阿,即使喜歡馬卡龍,還是得每天吃bug。 與全天下的程序猿共勉之(X