分享一些我的源碼閱讀技巧(如何快速上手別人的項目)

 

今天談點輕鬆的,不聊技術。

 

相信大家也都看到了,我最近發佈了很多源碼閱讀方面的文章。

 

我也知道,大家對這些垂直度比較高的東西,大多是沒有耐心看完的。

 

但相信,今天能打開這篇文章的朋友,都是愛學習的好孩子,更何況,關注我的讀者,都是智商爆表的那種!

 

“源碼辣麼大一坨,又臭又長,一點看下去的興趣都沒”

 

“源碼?不存在的,這輩子不可能看源碼。”

 

其實一開始的時候我也和大家一樣,對源碼閱讀有一種莫名的恐懼和厭煩心理。

 

但我相信大多數人,尤其是軟件行業的工程師朋友,大多數人還是有着比較高的做事主動性的,其實可能更多地,缺的是一種方法上的指導。

 

所以,我想了想,今天就和大家分享一下我的源碼閱讀心得和技巧吧。

 

01

從你所在領域經常調用的API開始看起

 

剛開始看源碼的時候可以看一些稍微簡單點的,以我所在的Android開發來說,我最開始看的就是:Handler、ThreadLocal、AsyncTask。。。這些經常能在我們項目當中用到的源碼,看過源碼和實現之後,我們就能更好地駕馭他,而不是從一個單純的使用者角度去看,等哪天我們有需要,說不定還能借鑑上源碼中的思維,爲我們工作助力。

 

畢竟對於大多數人來說,工作是我們的主業,能夠更好的服務於公司,我們得到的薪水也才更有分量,是吧?

 

02

儘量把主流的三方庫源碼都擼一遍

 

不論是爲了能夠讓自己變得更強大,能Hold住產品經理的無良需求。還是爲了提升自己的技術水平,三方框架的源碼都是我們不容錯過的。就像我之前文章中談到的,閱讀三方庫的源碼就是和高手的對話,通過閱讀、調試別人的源碼,我們至少是能夠學習到別人的編程技巧,反過來,如果能夠用在工作上,那升職加薪,肯定是非你莫屬了。

 

而且在閱讀源碼的過程當中一定會遇到一些我們不熟悉的知識。就這樣不斷地探索,發現,技術水平一定是會以肉眼可見的速度成長的。

 

03

源碼看不懂怎麼辦?

 

相信很多人都會有過這樣的問題,信心滿滿的開啓了源碼閱讀之旅,經常被繞的找不着北,源碼那麼多,怎麼才能抽絲剝繭從中過濾出關鍵代碼呢?

 

我的辦法是:先看別人是怎麼分析源碼的。

 

沒錯,通過看別人的源碼分析,能夠給我們提供一種源碼分析的思路,幫助我們理清某一個功能的主線條,這樣,當我們獨立自主地看源碼的時候,就會感覺線條流暢,思路清晰。

 

04

不要“閱讀”源碼

 

是的,我不建議大家“閱讀”源碼,而是要鼓勵大家,帶着debug去進行單步調試,這是我剛進公司時候同組的高級開發同事告訴我的竅門。把看到的,學到的自己跑一遍。因爲很多時候,如果一個Java的接口有很多實現的話,你是不知道他的實現類的,只能靠自己去猜,而且還不一定能猜得準,所以我建議大家一定不要懶,一定要讓代碼跑起來,再去看。

 

這裏也分享給大家一個小技巧:Android studio在debug版本模式下,當我們把APP運行在手機上之後,想調試的話,可以點擊工具欄上的attach debugger按鈕來啓動debug功能,這樣我們就不用再次將程序進行build,install過程,非常方便。

 

05

好記性不如爛筆頭

 

來自於工作當中的技術,其實是很雜的,像這種非結構化的東西很多時候是記不住的,相信很多朋友都會有這樣的感受:這個東西我明明之前看過,但爲什麼總忘記呢?

 

針對這個問題,我還諮詢過公司的高T,他也曾經跟我說過,其實遺忘是很正常的,但是他會把他看過的,覺得有用的知識點都記下來,之後每過一段時間就翻出來再看看,時間長了自然就記住了,這個高T現在在我們公司起碼是架構師以上級別的。

 

​所以,這也是我今天寫公衆號的原因,一方面是想把自己學過的東西都記下來,記錄也是一個對外輸出的過程,是加深自己學習理解的過程,另一方面也是想和大家多多交流一些知識,和大家共同進步、成長。

 

最後也歡迎大家關注我的CSDN博客(掃描下面的二維碼並回復 csdn 即可獲取),我會把一些技術方面垂直度比較高的乾貨都分享在上面。

 

有什麼想說的,或者大家想看哪方面的內容,可以在評論區與我互動。


​                                                                                        點個贊再走唄

                                                                    最豪橫的互聯網乾貨,掃一掃即刻擁有

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章