程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 橡皮鴨程序調試法

橡皮鴨程序調試法

編輯:關於C語言
 

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

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

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

找一個橡皮鴨子。你可以去借,去偷,去搶,去買,自己制作……反正你要搞到一個橡皮鴨子。
把這個橡皮鴨子放在你跟前。標准做法是放在你的桌子上,電腦顯示器邊,或是鍵盤邊,反正是你的跟前,面朝你。
然後,打開你的源代碼。不管是電腦裡的還是打印出來的。
對著那只橡皮鴨子,把你寫下的所有代碼,一行一行地,精心地,向這只橡皮鴨子解釋清楚。記住,這是解釋,你需要解釋出你的想法,思路,觀點。不然,那只能算是表述,而不是解釋。
當你在向這只始終保持沉默的橡皮鴨子解釋的過程中,你會發現你的想法,觀點,或思路和實際的代碼相偏離了,於是你也就找到了代碼中的bug。
找到了BUG,一定要記得感謝一下那個橡皮鴨子哦。
什麼?你覺得這個方法太“愚蠢”,太“弱智”了?是的,看上去,會這樣做的人腦子好像是有點毛病。不過,我要告訴你的是,這個方法的確有效。因為,這就是“Code Review”的雛形!下面讓我來給你解釋一下。


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

上面這句話的意思是

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

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

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

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

 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved