幫助你克服新手程式設計師最怕的事情

pythontab發表於2014-11-24

朋友Casey問我:“對於初級程式設計師,應該怎樣閱讀大型程式碼庫呢?”我認為這是一個很好的問題,要想成為一個優秀的開發者,閱讀程式碼庫並弄清裡面的內容是十分重要的。在你的職業生涯中,你很可能會中途加入一個專案,並要學會正在進行的任務。或者更為恐怖的是有一個專案丟給你了,讓你自己一個人搞清楚。

最壞的情形就是讓你重寫那些原來失敗的程式碼,靠你的努力讓專案再次運轉起來。但更為常見的就是讓你去維護一個之前員工寫的程式碼庫,但不幸的是那個員工已經離職了。當然,如果你正在參與一個開源專案,你很有可能會被要求去擴充套件它,做一些其它的功能。

尤其是新手程式設計師,我強烈建議你們閱讀程式碼庫,下面的文章是我這樣做的故事,然後你要更向前一步。

在我剛接觸到新的程式碼庫時,我常常會忽略文件和一些外部的細節,我不想有先入為主的意思,我就是想從檔案結構上理解整個的專案結構,這個就能讓我讀懂很多,我經常會這樣做,發現專案的結構,看看哪部分是專案的核心?看看專案是如何分解的?等等。

緊接著,我會開始閱讀最底層的程式碼,不管排序,找到一個檔案然後通讀它,再換下一個,一直持續下去。這期間,我會記筆記,幫助我理解這些內容是如何連線在一起的,更重要的是我希望能找到對這些程式碼的感覺。有很多程式碼常常是專案風格的一部分,比如預處理檢查,日誌記錄,抓取錯誤等等。完全可以先單獨瞭解這部分內容,以後就只讀有意思的那些部分。

我通常不會在某一點上閱讀太深,我會先從宏觀上對它進行把握,比如一個檔案透過呼叫Y和Z返回了X,但在這個點上閱讀每一個細節真的不是很重要。我會記很多的筆記,有時候它不像筆記,而是一系列的問題,隨著我對它的理解,我會補充並回答這些問題。在閱讀完最底層的程式碼後,我會做一個縱向的比較,讓我能理解它們是如何分佈和工作的。這就意味著我在下一次閱讀它時,我會有對在結構方面有更好的理解。

接下來,我會直接跳到我感興趣的部分,這些內容可能會很多,但不意味著你要做的有很多。我就是通讀程式碼,主要是要找到結構。然後細緻地去研究獨特的部分,看看它是如何寫的。

在這一期間,尤其是遇到難點的時候,我會試圖尋找任何存在的文件。當然,如前文所述,你要先知道程式碼的結構,這樣就可以更好更快地閱讀文件。

希望上面的講述可以幫助你閱讀大型程式碼庫。


相關文章