2012年7月17日 星期二

好文 - 閱讀他人的程式碼

閱讀他人的程式碼(1)─讀懂程式碼,使心法皆為我所用

1. 讀懂別人寫的程式碼,讓你收穫滿滿。
2. 先了解系統架構與行為模式,再細讀。
3. 接觸他人的程式碼,大致上可以分為三種程度:
a. 了解
b. 修改、擴充
c. 抽取、提煉

4. 閱讀程式碼的重點,不在於讀完每一行程式碼,而是在於有效率地透過探索及閱讀,從而了解系統的架構及行為模式。以便在你需要了解任何片段的細節實作時,能夠很快在腦上對映到具體的程式碼位置,直到那一刻,才是細讀的時機。

5.  熟悉溝通語言與慣例用語。
6. 掌握程式碼撰寫者的心態與習慣。


閱讀他人的程式碼(2) 摸清架構,便可輕鬆掌握全貌

1. 閱讀程式碼的目的,在於了解全貌而非細節

2. 從個別的類別行為著手,是由下至上(Bottom-Up)的方法;在閱讀程式碼時,卻應該先採由上至下(Top-Down)的方式。對程式碼的閱讀來說,由上至下意謂著,你得先了解整個系統架構。

3. 探索架構的第一件事:找出系統如何初始化

4. 在試著探索一個系統的長相時,我們應該找出來幾個答案,了解在它所用的架構下,下列這件事是如何被完成的:
a. 系統如何初始化
b. 與這個系統相接的其他系統(或使用者)有那些,而相接的介面又是什麼
c. 系統如何反應各種事件
d. 系統如何處理各種異常及錯誤


 閱讀他人的程式碼 (3) 優質工具在手,讀懂程式非難事

1. 因為在閱讀程式碼時,最常做的事,就是隨著程式中的某個控制流,將閱讀的重心,從某個函式移至它所呼叫的另一個函式。

2. grep
3. gtags
4. htags


閱讀他人的程式碼 (4)望文生義,進而推敲組件的作用

1. 好的說明文件難求,拼湊故事的能力很重要
2. 探索架構的第一步──找到程式的入口
3. 系統多會採用相同的架構處理
4. 隨著實務經驗,歸納常見的架構模式


閱讀他人的程式碼(5)找到程式入口,再由上而下抽絲剝繭

1. 適度忽略不需要了解的細節─這是一個很重要的態度。因為你不會一次就需要所有的細節。
2. 找到入口點後,多半採取由上而下(Top-Down)的方式,由最外層的結構,一層一層逐漸探索越來越多的細節。
3. 展開的同時,隨手記錄樹狀結構
4. 根據需要了解的粒度(Granularity),決定展開的層數


閱讀他人的程式碼(6)閱讀的樂趣:透過程式碼認識作者

1. 好的名稱能夠摘要性地點出實體的作用
2. 轉換立場,理解作者的思考方式
3. 從程式碼著手認識作者獨有的風格,進而見賢思齊

沒有留言:

張貼留言