9DAEB4F9-9A79-4835-91F5-BC3B9BE03645.png

前言

「『除錯』這個詞,原本還以為是很帥氣的專業術語,結果在準備 IT 證照時查了由來之後,事情的發展完全出乎意料。」

大家好,我是在公司自稱吉祥物,卻是全公司最不會看氣氛的ぷらむん🐯
偶爾會聽到前輩們說「這個先幫我除錯一下」,大家一直在講「除錯、除錯」的樣子很帥,但我以前只覺得這名字也太奇怪了吧。

就在今天我還在刷 IT Passport 的歷屆試題時,又遇到了「除錯」這個詞。

雖然只是憑選項的感覺猜對了,但我其實完全不知道為什麼會叫這個名字。

所以我決定去問問プラ二郎前輩!

—這篇文章適合這些人看—

🟠 常常聽到「除錯」這個詞,卻不知道它的由來
🟠 很好奇「bug」為什麼會變成表示程式錯誤的詞
🟠 想用日常例子理解除錯到底是在做什麼
🟠 在準備 IT Passport 時看到「除錯」這個詞,卻搞不太懂意思

【這篇文章的前提】
「架構」到底是什麼?來查查 IT 證照的 EA
IT Passport 和基本情報的差別是什麼?該先學哪個?

【推薦參考網站】
IPA IT Passport 試驗 歷屆試題(公開題目)
IT Passport 歷屆試題道場

🐯問了プラ二郎前輩:「除錯到底是什麼?」

B3B197C1-B491-47F6-BAA2-C3AC90271A29.png

🧑‍💻:プラ二郎前輩
「除錯?如果你原本覺得這詞很帥,知道由來之後可能會有點失望喔」

🧑‍💻:プラ二郎前輩
「在 IT Passport 裡,大概會像這樣出題」

前輩這麼說完,給我看了這題。
🐯來解看看 IT Passport 中關於「除錯」的類似題

Q. 在軟體開發中,發現程式的不良情況(bug),並找出原因加以排除的作業,最恰當的是哪一個?

① 重構
② 除錯
③ 移轉
④ 備份

查看答案 正解:② 除錯

發現程式的不良情況(bug),並找出原因加以排除的作業,就是除錯。

① 重構,是指在不改變外部可見行為的前提下,整理並改善內部程式碼結構

③ 移轉,是指將系統或資料搬移到新的環境中

④ 備份,是指把資料的複本儲存在其他地方

🐯「bug」到底是什麼意思?

ぷらむん_デバッグ記事_挿絵_2.jpeg

🧑‍💻:プラ二郎前輩
「先說『bug』,英文原本就是『蟲』的意思。把它當成機械不良的俚語,在這個故事之前就已經有人用了,只不過有一段事件讓它一下子變得很有名」

「蟲……?機械故障和蟲子,怎麼會有關係呢……?」

🧑‍💻:プラ二郎前輩
「1947 年 9 月 9 日,哈佛大學的一台名叫『Mark II』的計算機發生了誤作動。調查原因後,居然發現是真的飛蛾卡在機器內部的繼電器裡」

「居然真的是蟲造成的!?」

🧑‍💻:プラ二郎前輩
「沒錯。當時負責作業的葛麗絲・霍普(Grace Hopper)等人的團隊,把那隻飛蛾貼在筆記上,並記錄成『第一次實際發現 bug 的例子』。這件事因為字面上剛好重疊了『蟲(bug)』和『故障(bug)』的意思,而成為很有代表性的故事,也成了 "debug(除錯)" 這個詞開始普及的契機」

原來除錯裡面的「除」是表示「去除」的字首,而「bug(蟲=錯誤)」要被「去除」,所以才叫「除錯」啊。沒想到帥氣的詞背後,居然是捉蟲的故事。
🐯那麼,除錯到底是在做什麼?用日常例子來看

ぷらむん_デバッグ記事_挿絵_3.jpeg

「由來是懂了,可是實際上到底會做什麼,還是有點模糊……」

🧑‍💻:プラ二郎前輩
「那就用比喻來說吧。除錯就像冷氣不夠冷的時候,找到濾網髒了,然後把它清乾淨一樣」

🧑‍💻:プラ二郎前輩
「『不夠冷』這個症狀(=異常)出現時,先找出原因(=濾網髒了),然後把原因去除。除錯也是一樣,面對『程式沒有照預期運作』這個症狀,要找出造成問題的程式碼並修正,這就是除錯的工作」

「原來如此,不是只看症狀就算了,而是要一路找到原因並把它排除,才算完整啊」

🧑‍💻:プラ二郎前輩
「沒錯。順帶一提,刻意用各種條件去執行程式,確認有沒有問題的作業叫做『測試』;而把測試中發現的問題真正修好的作業,才叫『除錯』。兩者是分工不同的喔」

🐯回頭想想後的感受

老實說,一開始我一直以為「除錯」是個很帥的專業術語。

但查了由來之後才發現,這其實是個因為真實的蟲子而誕生、意外有點可愛的詞。

這次我也發現,越是聽起來帥氣的詞,知道由來之後,印象往往會整個翻轉。

既然知道是從蟲子來的,就不再覺得它是什麼很帥的名字了……嗯,大概就是那種感覺吧。以後如果前輩說「幫我除錯一下」,我應該會很平靜地回答「好」。

—這次學到的內容整理如下—
🟠 「bug」在英文裡是「蟲」的意思。1947 年,真的有一隻飛蛾被發現在電腦裡,這件事成了這個詞普及的契機
🟠 「除錯」是指找出 bug(錯誤)的原因並加以排除的作業
🟠 用來確認有沒有問題的作業叫做「測試」,而把發現的問題修好的作業叫做「除錯」

🦁結語

PRUM 的工程師多數都是從零經驗錄用的。如果你也對像ぷらむん這樣的新人成長環境感興趣,歡迎到公司官網看看。
PRUM 招募頁面

我們也有經營整理對工程師有幫助文章的網站,歡迎順便看看。
對工程師有幫助的文章網站

之後我還會再分享ぷらむん的奮鬥記。感謝你讀到最後🐯


原文出處:https://qiita.com/prumnn/items/8e154a792445fa2c063e


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝10   ❤️4
311
🥈
我愛JS
📝1   💬4   ❤️1
58
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登