Obie Fernandez談“我收到的最佳程式設計建議”

高翌翔發表於2012-08-16

Hashrocket公司創始人兼Addison-Wesley Professional出版社Ruby系列叢書編輯Obie Fernandez談閱讀錯誤訊息的重要性。

姓名:

Obie Fernandez

Obie Fernandez Avatar

程式設計能力及工作經驗:

Obie是Hashrocket公司創始人,Hashrocket是一傢俱有世界領先水平的web設計及開發諮詢公司。Obie不僅是公認的技術領導者,而且經常在行業活動中發表演講,此外他還是Addison-Wesley Professional出版社Ruby系列暢銷書的編輯。在成立Hashrocket之前,Obie是ThoughtWorks的高階諮詢師,專攻複雜的定製企業軟體專案。自從上世紀80年代得到他的第一臺Commodore VIC-20個人電腦起,他就一直在擺弄計算機,而且在上世紀90年代中期參與首批Java企業級專案時,Obie發現自己在正確的時間和地點成為了一名程式設計師。

Commodore VIC-20 and TV

Commodore VIC-20個人電腦及電視機

建議:

儘管以下建議似乎極為顯而易見,但是我卻常常必須對自己和其他人提起它:“在著手對程式碼進行額外修改之前,應該花點兒時間去理解位於異常/堆疊跟蹤頂部的錯誤訊息。(Take a moment to understand the error message at the top of an exception/stack trace before making additional changes to your code.)

我不明白為何遵循此建議會有這麼困難,不過這些年裡我已收集到了一些線索。首先,除非我們修改程式碼只是尋開心,否則我們總是處於某種程度的時間壓力之下。而且在我們對某些程式碼進行微調的時候,我們通常會對哪些程式碼可以執行而哪些程式碼不能執行略知一二。我們通常會嘗試某種解決方案,並進行額外的程式碼修改,儘管沒有充分認識到那樣做將會導致什麼後果。然後你切換到你的程式或測試控制檯去檢視修改結果,接著數十行的堆疊跟蹤資訊會再次填滿了你的螢幕。實際的錯誤訊息幾乎無法立刻看到。

就在短暫、近乎本能的瞬間,你做出了選擇。是向上滾動至跟蹤資訊的頂部,然後檢視到底出了什麼錯;還是假設出了某個錯,然後跳到相應的程式碼那裡並試著做些小修小改。我猜這麼做是人之天性使然,要不就與我們當日所攝入的咖啡因數量有關,無論是何原因,但結果往往是它誘惑你去按著你的假設行動。

在結對程式設計時,我注意到在初學者身上這個壞習慣尤為突出。我認為這是因為在我們學習程式設計時,犯了如此之多的錯誤。而由此帶來的不安全感使得我們想盡快完成那些小修小改。以我的經驗來看,更有效率的做法是檢視我們正在處理的錯誤或失敗為何種型別,而不是盲目地返回程式碼,並嘗試在我們的大腦中把它想清楚。

因此,一定要花點兒時間向上滾動,然後仔細檢視位於堆疊跟蹤頂部的實際錯誤訊息。通常,你的第一反應是完全錯誤的,而且在一無所知的情況下橫衝直撞只會浪費大量的時間和精力。


檢視英文原文:"The Best Programming Advice I Ever Got" with Obie Fernandez

來自更多程式設計師的建議參見“我收到的最佳程式設計建議”(The Best Programming Advice I Ever Got)系列文章

“我收到的最佳程式設計建議”系列譯文

  1. 千萬別碰其他人的程式碼!——Russ Olsen
  2. 在你讓程式碼可重用之前,應該先讓程式碼可用。——Bill Wagner
  3. 在著手對程式碼進行額外修改之前,應該花點兒時間去理解位於異常/堆疊跟蹤頂部的錯誤訊息。——Obie Fernandez
  4. 除錯前的思考十分重要——Rob Pike
  5. 編寫更少的程式碼。——Russ Olsen
  6. 閱讀的資料一定要比你編寫的內容多得多,而且要堅持閱讀高質量的資料。——Danny Kalev
  7. 翻譯中……

相關文章