摘要:對于一個有追求的程序員來說必須讀源碼,當然閱讀源碼是一件令人頭疼的事。和差不多,想法一樣,但是和相比,搜索到的有價值結果不是很多,沒有的理想,還有一些來著百度知道。
對于一個有追求的程序員來說必須讀源碼,當然閱讀源碼是一件令人頭疼的事。閱讀別人的代碼遠比自己寫代碼要難。Linus 是Linux的早期作者,一句影響深遠的話是“Read The Fucking Source Code”(RTFSC),這句話既體現了閱讀源碼的重要性,也說明了閱讀源碼對于大牛來說也是一件令人頭疼的事。閱讀源碼對于中級工程師尤為重要,通過代碼可以看大牛的實現途徑,方法,思想,如果你源碼看多了,最終你會發現同樣的效果可以有多種實現方式,具體的實現方式就和自己的編碼風格有關系。對于一個中級android開發者需要閱讀什么源碼,android系統源碼?第三方開源庫源碼?完整項目源碼?這些源碼都是大牛寫的,學習價值很大,那我們應該學習哪一個?首先我們要明白我們的目的:短時間提升我們編碼技能,希望在工作能體現出來。從這個角度來看,閱讀android系統源碼的價值就不是很高。所以對于一個中級工程師來說,要把第三方開源庫和完整項目作為主要對象。下面我就講一下看第三方開源庫和完整項目源碼的一些方法和技巧。
前期準備:如何高效的看fuck source code,首先需要解決的是我們用什么看,我推薦看第三方開源庫使用sublime text,看完整項目用android studio。第三方開源庫無須編譯,直接看代碼,使用sublime text代碼高亮整潔,看的很爽。效果如下:
也許你剛開始不適應,不要擔心,用不了幾天你就離不開它了。那問題又來了,看代碼我習慣了這種高亮風格,再也無法忍受android studio的黑白風格的代碼了。沒關系,很簡單,只要設置一下,android studio就可以和sublime text 達到同樣的效果。先來看看設置后的效果吧。
只需下載jar包,導入android studio即可。設置方式詳見README文件。
如果你是一個閱讀源碼的新手,那我建議你首先找一些代碼量少的,自己感興趣的來看。可以參考我之前寫過的一片文章2016年最值得學習的五大開源項目(這些都是完整的項目,如果想看一些第三方開源庫,可以來這里開源項目解析)
如何閱讀第三方開源庫
選擇一些當下熱門、學習價值高的第三方開源庫,我認為最值得學習的是Volly,開源項目解析中也有對Volly的解析。
首先下載源碼,然后在網上找一些源碼解析文章來看看,不要忘記,我們的宗旨之一“高效”,這樣就可以最快的對項目原理有一個大體的了解,再去看源碼具體實現就很快了。這里很重要的一點是如何找一些有價值的學習資料,我們最常有的就是搜索引擎,今天就主要說說如何選擇搜索引擎,以后有機會再寫寫如何篩選有價值的學習資料。搜索引擎:Google>bing>baidu.其實我不想黑百度,因為我很想去百度,既然現在還不是一名百度工程師,就說一下事實吧。Google是把你想要的,最有價值的東西呈現在你面前,并且他做到了。Google會把符合搜索結果、點擊量最大的、最有價值的東西排在首頁,所以你很輕松就會找到你想要的東西(如果你上不了Google可以點這里)。bing和Google差不多,想法一樣,但是和Google相比,bing搜索到的有價值結果不是很多,沒有Google的理想,還有一些來著百度知道。百度呢,第一眼看到的是廣告,一些內容來著百度知道,呈現的搜索結果不是按價值排序,你需要自己慢慢找。所以首推Google。
再你看了一些解析文章之后,理解了項目原理,對大部分類的功能有了一定的了解,再來看源碼的具體實現方式。在閱讀的過程中總會遇到一些看不懂的代碼,你可以先放一放,繼續往下看。這樣反復幾遍,就會對代碼的理解不斷加深。我認為閱讀第三方開源庫主要是學習設計思想。
如何閱讀開源完整項目
毋庸置疑使用android studio閱讀完整項目,很高效。閱讀完整項目涉及的東西比較多,項目的架構不同,使用的第三方庫不同,這就要求需要對項目中自己不熟悉的東西進行學習,也不需要都弄懂了再去看項目,邊看邊學,遇到不會的就去搜資料學習,這樣最快了。
第一步下載項目,在真機或虛擬機上運行,最直觀的體驗app的功能。然后看app的架構,mvc、mvp、mvvp,目前項目中mvvp用的比較少。然后打開build.gradle文件看看項目用了哪些網絡請求庫、圖片加載庫、其他庫。如果有不熟悉的,上網找一些文章學習一下。然后就打開manifasts文件找的入口activity,順藤摸瓜往下看。同樣,不懂的地方放過??赐暌槐椋龠M行下一步,不要指望一遍就可以搞定。這里給大家推薦一個特別值得學習的項目LookLook(Github地址:https://github.com/xinghongfe...):mvp架構,RxJava + Retrofit+okhttp,glide。項目結構清晰,代碼量不是很大,學習價值高。方法基本也就這么個方法,剩下就是跟者自己的感覺走。
如果你的項目看多了之后你會發現每個項目可以分為以下幾個模塊:
UI(activity ,fragment)
adapter
數據實體
第三方開源庫的使用,網絡、圖片、其他工具
一些工具類
項目配置類
自定義View
其他(數據庫,activity、fragment的基類,API等)
任何事情都可以熟能生巧,在看了一些開源項目后,自己最好開發一個??错椖吭创a是一個很費腦子的事情,不能急于求成,我之前就有點著急,看了很多項目,高強度的進行了20多天后,精力消耗很大,掉頭發很嚴重,大腦嚴重勞累過度,休息了一個星期才緩解過來。所以建議大家制定一個合理的學習時間,不要讓自己強度太大。
最后的感覺就是,看似不可思議的事情,只要自己靜下心來,按部就班,最后發現都不過如此嘛。小伙伴們開始 趕快開始Read The Fucking Source Code 吧。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65099.html
摘要:番茄工作法簡約而不簡單,本書亦然。在番茄工作法一個個短短的分鐘內,你收獲的不僅僅是效率,還會有意想不到的成就感。 @author ASCE1885的 Github 簡書 微博 CSDN 知乎本文由于潛在的商業目的,不開放全文轉載許可,謝謝! showImg(/img/remote/1460000007319503?w=728&h=792); 廣而告之時間:我的新書《Android 高...
閱讀 1344·2023-04-25 15:21
閱讀 2675·2021-11-24 10:23
閱讀 3401·2021-10-11 10:59
閱讀 3245·2021-09-03 10:28
閱讀 1733·2019-08-26 13:45
閱讀 2325·2019-08-26 12:11
閱讀 926·2019-08-26 12:00
閱讀 1709·2019-08-26 10:44