橡皮鴨程式調試法

來源:互聯網
上載者:User

原文:

http://coolshell.cn/?p=1719


 (

酷殼




下面,讓我來為你介紹一個程式調試大法——“橡皮鴨程式調試法”,這個方法在調試界是很出眾的,實施起來相當方便和簡易,幾乎可以隨時隨地地實驗,幾乎不需要藉助任何的軟體和硬體的支援,你甚至可以把你的程式列印出來,在紙面上進行調試。

那麼,為什麼這個方法要叫做橡皮鴨呢?因為橡皮鴨子是西方人在泡澡時最喜歡玩的一個小玩具,所以,這個東西應該家家戶戶都必備的。因為,這個方法由西方人發明,所以,就被取名為“橡皮鴨”了。

好了,話不多說,下面是整個調試方法的流程。

  1. 找一個橡皮鴨子。你可以去借,去偷,去搶,去買,自己製作……反正你要搞到一個橡皮鴨子。
  2. 把這個橡皮鴨子放在你跟前。標準做法是放在你的桌子上,電腦顯示器邊,或是鍵盤邊,反正是你的跟前,面朝你。
  3. 然後,開啟你的原始碼。不管是電腦裡的還是列印出來的。
  4. 對著那隻橡皮鴨子,把你寫下的所有代碼,一行一行地,精心地,向這隻橡皮鴨子解釋清楚。記住,這是解釋,你需要解釋出你的想法,思路,觀點。不然,那隻能算是表述,而不是解釋。
  5. 當你在向這隻始終保持沉默的橡皮鴨子解釋的過程中,你會發現你的想法,觀點,或思路和實際的代碼相偏離了,於是你也就找到了代碼中的bug。
  6. 找到了BUG,一定要記得感謝一下那個橡皮鴨子哦。

什嗎?你覺得這個方法太“愚蠢”,太“弱智”了?是的,看上去,會這樣做的人腦子好像是有點毛病。不過,我要告訴你的是,這個方法的確有效。因為,這就是“Code Review”的雛形
!下面讓我來給你解釋一下。

Once a problem is described in sufficient detail, its solution is obvious.

上面這句話的意思是

一旦一個問題被充分地描述了他的細節,那麼解決方案也是顯而易見的。

我相信在座的各位都有過這樣的經曆,當你死活都找不到問題的原因的時候,當你尋求他人的協助時,對別人解釋整個你的想法和意圖或是問題背景的時候,你自己都沒有解釋完,就已經找到問題的原因了。這樣的經曆,相信大家一定有過。這就是這個方法的意義所在。

所以,“橡皮鴨”只是一個形式,其主要目的是要你把自己寫的代碼做“自查”,也就是自己解釋給自己聽。當然,為了不讓你像個“精神分裂”的程式員,
引入“橡皮鴨”是很有必要的(雖然這樣還是有點精神病,但比起精神分裂來說算是好的了,嘻嘻)。所以,真實的本質是Code
Review。關於程式碼檢閱,大家可以看一下我的這篇文章《Code Review中的幾個提示

》,你會明白其中更多的東西的。

最後,我想和大家說一下道具“橡皮鴨”。是的,在我們的身邊,你不一定能找得“橡皮鴨”,但你可以找到你你的同事,你的朋友,來做這個“橡皮鴨”,
當然,他們並不一定有“橡皮鴨”好使,因為你的那些同事或朋友一定會在你解釋的時候,隨意地發表意見和看法,相當的令人annoying。《Code Review中的幾個提示

》和《結對程式設計的利與弊

》也談到了一些,供你借鑒。

(全文完)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.