閱讀代碼就像閱讀猶太法典

碼頭工人 13年前發布 | 10K 次閱讀 代碼

導讀:Alan Skorkin 寫過一篇文章,講述他為什么喜歡閱讀他人代碼,并建議其他同行也如此。可理解為:閱讀優秀代碼是提高開發人員修為的一種捷徑  。微軟的資深軟件工程師 Eric Lippert 在答復同行 JeremyK 的問題時也感嘆閱讀代碼很難

Seth Gordon 給 Joel Spolsky 發過一封電子郵件,分享有關閱讀他人源碼的一些不錯建議。以下是郵件的譯文:

在以色列的神學院學習 8 個月后,我開始在波士頓當一個技術作家。

一年多前,我和一位同事正試圖解釋一個 Yacc 和 Perl 的怪題,我們打印了部分文檔。我們坐下來看代碼輸出并逐行討論。“現在,由于 Yacc 的工作方式,當遇到*this*這樣的數據時,它就將運行*this*函數…… *this* 這一行是做什么的?就*this*這一點,這個混亂的數據結構看起來像什么?

另一位同事問事情進展如何,我告訴他,“這就像在閱讀猶太法典(Talmud)。”

下面就是猶太法典的閱讀戰術,我認為同樣適用于閱讀源碼:

1. 結對進行,一個一個相互自言自語讀代碼。(編注:應該輪著解釋代碼。)

2. 討論。如果你的搭檔說“這個是X的意思”,當你并不理解或者你有其他看法時,請他作出解釋。

3. 有時候,當在處理一段文字(代碼)時,很容易找出你能看懂的兩部分。所以,如果有段文字(代碼)難住你了,可嘗試跳過,稍后返回再看。(最終還是要回到該處的。)

4. 閱讀原文,既要“從內看”,也要“從外看”。“從內看”就是一個字一個字地把原文解釋成英文(或你的母語);“從外看”就是把一段文字詮釋通順的段落。如果只“從內看”,你會只見樹木不見森林;如果只“從外看”,你會只有個寬泛的猜測,也沒有核實細節。

(Joel Spolsky  )謝謝你,Seth!很好的想法!

結語

文章開頭提到的 JeremyK ,他對閱讀不熟悉代碼的看法是,自己重寫。 關于閱讀代碼,如果您有其他建議,歡迎在評論或微博中分享。

來自: blog.jobbole.com

 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!