讀程式碼就像讀猶太法典 Reading Code is Like Reading the Talmud

作者:周思博 (Joel Spolsky)
譯:Warlocky
Friday, May 26, 2000
屬於 Joel on Software, https://www.joelonsoftware.com/2000/05/26/reading-code-is-like-reading-the-talmud/

Seth Gordon 寄給我一些很棒的關於閱讀他人程式碼時的建議:

在一家以色列的猶太教學院念了大約八個月的書後,我第一份工作是在波士頓擔任技術文件寫作人員。
大約一年前,我和另一位同事試著讀懂一支用 yacc 及 Perl 寫的醜陋程式,它的目的是用來產生我們的一些文件。把整份程式印出來之後,我們坐下來幾乎是一行一行地檢視。「由於 yacc 的原理是這樣,所以它碰到*這種*資料會執行*這個*函數 ... *這行*是幹什麼用的? ... 在*這個地方*這一沱資料看起來像什麼?...」
別的同事問我是怎麼做到的,我就告訴他:「這就像讀猶太法典一樣。」
以下這些閱讀猶太法典的技巧我想對閱讀程式也會有幫助:
  1. 成對進行,並將想法大聲唸給對方聽。
  2. 討論。若你的伙伴說「這個代表 X」但你卻不了解箇中原因或有不同意見時,請他說明原因。
  3. 在閱讀程式時,有時候先讀完前後的程式*之後*,中間的部份會較容易了解。若你讀到一段程式卡住時,先試著跳過去,之後再看看能不能重讀一遍(但你最終還是得回來)。
  4. 程式的內部運作及外部用法都要理解。了解內部運作時,應將一段一段的程式翻譯成中文(或是你自己的母語);觀察外部用法時,應將一大段程式轉換成直覺的概念。若只看內部運作,難免見樹不見林;若只看外部用法,卻又難免流於猜測而未佐以具體的細節。

謝謝你,Seth!很棒的建議!

Page_of_Talmud.jpg

這些網頁的內容為表達個人意見。
All contents Copyright © 1999-2006 by Joel Spolsky. All Rights Reserved.