如何閱讀源代碼

俗話說(shuō) 聽君一席話,勝讀十年書踩娘。閱讀好的源碼刮刑,正如和智者聊天,受益無(wú)窮养渴。

那么如何能更加高效的閱讀源代碼呢雷绢?

首先,可以把源碼分成兩類:
一類是某些功能性的代碼理卑,這類代碼往往規(guī)模比較小翘紊,通讀一遍一般不需要耗費(fèi)太多時(shí)間。閱讀源碼的方法想來(lái)也簡(jiǎn)單藐唠,只要保持在特定代碼上的專注帆疟,多投入點(diǎn)時(shí)間,攻克它相信不會(huì)有太大難度宇立。
另外一類就是大型項(xiàng)目的源碼了踪宠。這類源碼由于其是由多個(gè)功能模塊組成的,往往代碼量龐大妈嘹,不太可能在短時(shí)間內(nèi)讀完柳琢。這時(shí)候就需要一些方法來(lái)解決閱讀源碼的問(wèn)題。

下面談?wù)勎艺J(rèn)為閱讀這類源碼最有效的幾個(gè)方法润脸。

首先是讀源碼的開發(fā)文檔和api文檔柬脸。文檔其實(shí)是作者思路的體現(xiàn),它使我們能對(duì)源碼架構(gòu)和功能能有個(gè)比較深刻的了解毙驯。通過(guò)閱讀源碼的相關(guān)文檔倒堕,經(jīng)常會(huì)發(fā)現(xiàn)之前怎么讀都讀不明白的地方,突然變得豁然開朗尔苦!另外,強(qiáng)烈建議直接讀英文文檔,而非翻譯成中文的“二手資料”允坚。英語(yǔ)是程序員的必備技能魂那,英文看不懂怎么辦?那就去學(xué)稠项,早學(xué)早受益涯雅!

其次是debug。在debug之前展运,要先讓代碼能在IDE里跑起來(lái)活逆。sublime,vim等代碼編輯器有其自身的使用場(chǎng)景拗胜,但個(gè)人認(rèn)為在debug代碼這一塊并不適合蔗候;專業(yè)的IDE在調(diào)試代碼的同時(shí),能夠觀察變量的值和堆棧信息埂软,能夠分析方法和類之間的關(guān)系锈遥,有助于我們理清思路。除了打斷點(diǎn)勘畔,還可以通過(guò)打印log的方式調(diào)試源碼所灸。

再然后是做筆記。為了各個(gè)功能模塊之間的關(guān)系炫七,可以通過(guò)畫類圖爬立,畫思維導(dǎo)圖等方式,將一個(gè)大項(xiàng)目層層拆解成多個(gè)相對(duì)獨(dú)立的部分万哪,再將它們逐個(gè)擊破侠驯。畫類圖推薦使用 plantUML,這是一款通過(guò)寫腳本的方式生成類圖的軟件壤圃,很適合程序員使用陵霉。而思維導(dǎo)圖的軟件就有很多了,我本人經(jīng)常使用百度腦圖和processon伍绳。

最后可以多讀源碼自帶的單元測(cè)試代碼踊挠,單元測(cè)試的代碼相當(dāng)于項(xiàng)目的sample,包含著功能點(diǎn)和相關(guān)用法冲杀。還可以自己寫單元測(cè)試代碼效床,自己實(shí)踐一遍有助于加深理解。

源碼閱讀是個(gè)長(zhǎng)期積累的過(guò)程权谁。剛開始的時(shí)候可能感覺很吃力剩檀,無(wú)從下手。但只要通過(guò)持續(xù)的投入旺芽,再輔以正確的方法沪猴,就一定能會(huì)有收獲辐啄,會(huì)駕輕就熟。
所以运嗜,just do it壶辜,now!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末担租,一起剝皮案震驚了整個(gè)濱河市砸民,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奋救,老刑警劉巖岭参,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異尝艘,居然都是意外死亡演侯,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門利耍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蚌本,“玉大人,你說(shuō)我怎么就攤上這事隘梨〕贪” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵轴猎,是天一觀的道長(zhǎng)嵌莉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)捻脖,這世上最難降的妖魔是什么锐峭? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮可婶,結(jié)果婚禮上沿癞,老公的妹妹穿的比我還像新娘。我一直安慰自己矛渴,他們只是感情好椎扬,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著具温,像睡著了一般蚕涤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铣猩,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天揖铜,我揣著相機(jī)與錄音,去河邊找鬼达皿。 笑死天吓,一個(gè)胖子當(dāng)著我的面吹牛贿肩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播龄寞,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼尸曼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了萄焦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤冤竹,失蹤者是張志新(化名)和其女友劉穎拂封,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鹦蠕,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冒签,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钟病。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萧恕。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肠阱,靈堂內(nèi)的尸體忽然破棺而出票唆,到底是詐尸還是另有隱情,我是刑警寧澤屹徘,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布走趋,位于F島的核電站,受9級(jí)特大地震影響噪伊,放射性物質(zhì)發(fā)生泄漏簿煌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一鉴吹、第九天 我趴在偏房一處隱蔽的房頂上張望姨伟。 院中可真熱鬧,春花似錦豆励、人聲如沸夺荒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)般堆。三九已至,卻和暖如春诚啃,著一層夾襖步出監(jiān)牢的瞬間淮摔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工始赎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留和橙,地道東北人仔燕。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像魔招,于是被迫代替她去往敵國(guó)和親晰搀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,327評(píng)論 25 707
  • 從來(lái)沒想過(guò)父親會(huì)聽我講故事办斑,談?wù)摿撕芏嚓P(guān)于要去的地方外恕,關(guān)于安全、消費(fèi)乡翅、住處鳞疲、文化。不是第一次出去了蠕蚜,這次有些不一...
    蘇霽月閱讀 286評(píng)論 2 0
  • 前言:這次的作業(yè)仍然延續(xù)上次的風(fēng)格尚洽,寫一封信。我很喜歡寫信靶累,就像面對(duì)面腺毫,一對(duì)一的交談。 親愛的表弟挣柬,6月7日和8日...
    小寶不長(zhǎng)高閱讀 279評(píng)論 0 0
  • 問(wèn)題描述 開發(fā)中遇到了關(guān)于Masonry對(duì)于Scrollview的contentSize的設(shè)置問(wèn)題潮酒。通過(guò)閱讀Mas...
    W_SN閱讀 10,806評(píng)論 16 18
  • 文:沙瀾 韻:平水韻 昔日一房亂 今時(shí)顧影煢 虎龍相繼去 坡道又逢卿 場(chǎng)景1: 場(chǎng)景2: 場(chǎng)景3: 場(chǎng)景4: 【P...
    沙瀾閱讀 264評(píng)論 0 8