成為一名更好的程式設計師:如何閱讀原始碼
閱讀原始碼有許多益處。你會發現新的架構(construct)和庫,與其他的程式碼維護者產生共鳴,但最重要的是學會如何組織程式碼,避免因內部極其複雜而變得不可維護。
但是也有一個不好的地方,那就是閱讀原始碼太困難了。每當我看到一個新的程式碼庫(code base)時,這種讓人眩暈的感覺就充斥了我的大腦。我的內心告訴我壓根不想趟眼前這趟渾水。
這是(希望是)正常的反應。當我們的大腦接觸過多的新東西,就會產生排斥。造物主賦予我們的這臺強大的模式匹配機器根本找不到規律。所有的抽象(abstraction)都是之前沒見過的,類的名稱也毫無印象。程式又到底是從什麼地方開始執行的?
對此,我能給出的一般性建議如下:1. 尋找並建立自己能夠理解的初步基礎,通常就是主要的入口點(main entry point)。2. 從這個基礎開始,逐步探索主要功能。3. 記錄下自己的見聞。
從頭開始
竅門就是給自己一個起點。我是這樣做的。我通過-h選項執行程式,並呼叫help命令。之後我複製其中一條help文件字串,以此為檢索詞搜尋一遍程式碼庫,找到這個幫助文件所在地方。通常情況下,呼叫help命令之後你會發現離程式的主入口點很近了。
辨明輪廓
找到主入口點之後,我會執行幾個文件中提供的示例。然後,我會試著追蹤主要的程式碼塊,大致瞭解下每個部分是如何連線起來的。
我會問自己,是否存在一個管理程式,負責呼叫一堆幫助函式和類?是不是有一些類是平級關係,相互之間輪流交換控制權?是不是有一個程式逐步執行的主任務佇列?
瞭解全域性有助於你理清小細節。如果你沒有理解程式的主流程就悶頭讀下去,那你很可能會被細枝末節搞得焦頭爛額。
勤做筆記
我習慣直接在程式碼中做筆記。做筆記的時候,我會使用特殊的註釋符(例如,使用#=>,而非常用的#),這樣可以將我自己的筆記與原作者註釋區分開來。
如果碰到巧妙的技巧、不易理解的流程、程式設計架構(construct)的漂亮使用方式或者是其他任何你想牢記的內容,務必要做筆記。如果你讀不下去了,你也可以做個記錄,提醒自己之後要回去再讀看不懂的部分。
通過寫下你的思緒,你實際上是在把那塊程式碼變成你自己寫的。慢慢地,你就會開始在工作中自然地用上新掌握的那些架構(construct)。
融匯貫通
學習程式設計,是一個反覆讀程式碼和寫程式碼的持續過程。只要你願意接觸不同的風格、程式碼,最終你會形成自己的獨特視角和思維。
相關文章
- 如何成為一名成功的程式設計師程式設計師
- 作為程式設計師為什麼要閱讀原始碼程式設計師原始碼
- 如何成為更好的Java程式設計師?- javarevisitedJava程式設計師
- 如何成為一名合格的(Java)程式設計師Java程式設計師
- 如何成為一名自豪的遊戲程式設計師遊戲程式設計師
- 如何成為一名 Java 冠軍程式設計師?Java程式設計師
- 如何成為一名Java冠軍程式設計師Java程式設計師
- 如何利用Google成為一個更好的程式設計師Go程式設計師
- 如何成為一名專家級的程式設計師程式設計師
- 如何成為一名真正專業的程式設計師程式設計師
- 老生常談!程式設計師為什麼要閱讀原始碼?程式設計師原始碼
- 讓我們成為更好的程式設計師程式設計師
- 五個方法成為更好的程式設計師程式設計師
- 為什麼成為一名程式設計師?程式設計師
- 程式設計師如何成為一名自由職業者程式設計師
- 成為更好程式設計師的8種途徑程式設計師
- 成為更優秀程式設計師的關鍵:更多的閱讀程式設計師
- 你為什麼成為一名程式設計師?程式設計師
- 程式設計師如何寫出更好的程式碼程式設計師
- 職場10年之如何成為一名合格的程式設計師(上)程式設計師
- 如何使用搜尋技巧來成為一名高效的程式設計師程式設計師
- 如何成為有程式碼潔癖的程式設計師?程式設計師
- 三個方法讓你成為更好的程式設計師程式設計師
- 成為一名好程式設計師的關鍵因素程式設計師
- 成為一名程式設計師要做的幾件事情程式設計師
- 如何閱讀原始碼–Koa為例原始碼
- 如何閱讀原始碼--Koa為例原始碼
- 別讓自己成為一名廢棄的程式設計師程式設計師
- 來自阿里的P7高階程式設計師教你如何成為一名合格的Java程式設計師阿里程式設計師Java
- 如何成為10倍速的程式設計師程式設計師
- 如何成為偉大的程式設計師?程式設計師
- 成為更好的程式設計師必須學習的 4 種程式設計結構程式設計師
- 2014,成為更好程式設計師的7個方法程式設計師
- 一句話讓你成為更好的PHP程式設計師PHP程式設計師
- 也談如何閱讀程式原始碼原始碼
- [水文] 什麼原因讓我成為一名程式設計師程式設計師
- 如何成為真正專業的程式設計師程式設計師
- 如何成為一個糟糕的程式設計師程式設計師