備注: 以下言論非原創(chuàng),來自各社區(qū),時代久遠(yuǎn),已不可考,侵刪。
- 相信重復(fù)的力量
- 善用工具,比如vim到我ctags插件,source insight,code understand等。vs,linux下sublimtext,codeblocks
- 從.h文件的數(shù)據(jù)結(jié)構(gòu)開始,腦補(bǔ),先想再讀等。
- 聯(lián)系實踐,不是為讀而讀,帶著目的去讀。
- 寫分析文章,教學(xué)相長。
- 熟悉的項目可從main開始,不熟悉或大型項目從example或client入手。
- c代碼,關(guān)注結(jié)構(gòu)體,一般函數(shù)圍繞它們處理,java代碼關(guān)注interface
- 邊看邊做筆記,畫uml,流程時序圖等,方便回憶,中斷后繼續(xù)。
- 收集相關(guān)文檔資料,知識儲備。
- 找開始的地方,分層次閱讀。
- 備份,構(gòu)造執(zhí)行環(huán)境,編譯構(gòu)建該源碼。
- 寫注解,幫助理解,防止重復(fù)閱讀。反復(fù)閱讀。
- 修改,執(zhí)行代碼。
- 閱讀書Code Reading
- 運用版本控制系統(tǒng)git查看代碼和日志對比,可了解代碼演變信息。常用git log,git blame命令。git grep相同使用例子。
- gdb step
- follow commit歷史,看看代碼怎么擴(kuò)展開來的,可以了解框架,作者思路。同15條
- 懂得基本的設(shè)計模式,框架知識。
- 在Linux下用vim+ctags,需要注意下面這些:設(shè)置vim為打開文件后默認(rèn)跳到上次關(guān)閉的地方,在/etc/vim/vimrc中可以設(shè)置;設(shè)置vim,將ctrl+] 默認(rèn)為命令“:t”即,將全部匹配項顯示出來;用好grep命令和find命令即可,查找要查的東西非常好用;grep "the text you want find" * -r是$常用的命令
- 幫項目解決issue。可和作者交流,可獲得幫助,正反饋,成就感,貢獻(xiàn)。
- 代碼筆記寫哪?Plain-text. See https://github.com/middlefeng/LuaVMRead 。之前是直接checkout項目代碼,然后在代碼旁加注釋也是plain text. 問題是sync了新代碼之后resolve很麻煩。這辦法不錯,或者可以在代碼文件旁另建文件來加理解。
- 邊看邊罵。斜視