2011-08-11 34 views
1

你們都遇到了這種情況。我第一次使用一種新算法,而我坐在電腦上試圖查明它是否是某種語法問題,或者我誤解了算法。在這樣的情況下,我會比花時間盯着屏幕更早地重寫程序。但是這提出了一個普遍的問題,我很好奇聽到比我更有經驗的程序員:調試時,您如何評估您是否應該重寫或繼續尋找?

你如何判斷什麼時候該重寫,或者你應該繼續坐在那裏盯着你的代碼尋找錯誤?

專業程序員是否有任何有用的啓發式方法?

回答

1

這聽起來並不適合我。只要你不明白(必填)算法你不應該寫代碼。這就是所謂的試驗和錯誤,並且是一個非常可靠的方式,最終會導致糟糕和錯誤的代碼。三思而後行。

至於回味無窮有點挑釁聲明:

寫代碼是應該做的最後一件事。作爲一個編碼聽起來可能聽起來像 你應該輸入很多,但實際上,如果我計算一個普通程序員每天提交多少個字符 ,並要求某個祕書輸入他在30分鐘內完成的相同數量的 。

+0

是的,我想你是對的。 – jones

1

這是一個非常困難的問題,真的取決於你的情況。

通常情況下,有兩種情況:

  • 算法簡單,你會發現快了錯誤。除非要優化重寫,否則通常不需要重寫。
  • 該算法非常複雜:很難找到該錯誤。但是可能很難重寫,因爲你可能會錯過算法的一些微妙的特徵。風險是有一個新的算法,但有新的錯誤!

我不認爲這是一個乾淨的答案。我會說,找到bug比重寫所有更好。當您需要優化或清理代碼時,重寫是非常必要的(不是因爲您沒有發現錯誤)。

這是我的兩美分。

0

你永遠不應該改寫已經經歷過多次測試的東西......理論上說,如果你至少經歷了一次,你已經找出了錯誤。試圖重新創建這些已解決的錯誤的最終結果非常困難。喬爾對這一一篇非常好的文章,我傾向於同意,儘管我一直在你的位置,我的傾向是隻把它扔掉,並把它改寫..

http://www.joelonsoftware.com/articles/fog0000000069.html

相關問題