成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

android高級(jí)工程師-閱讀源碼的經(jīng)驗(yàn)總結(jié)

idisfkj / 1229人閱讀

摘要:對(duì)于一個(gè)有追求的程序員來說必須讀源碼,當(dāng)然閱讀源碼是一件令人頭疼的事。和差不多,想法一樣,但是和相比,搜索到的有價(jià)值結(jié)果不是很多,沒有的理想,還有一些來著百度知道。

對(duì)于一個(gè)有追求的程序員來說必須讀源碼,當(dāng)然閱讀源碼是一件令人頭疼的事。閱讀別人的代碼遠(yuǎn)比自己寫代碼要難。Linus 是Linux的早期作者,一句影響深遠(yuǎn)的話是“Read The Fucking Source Code”(RTFSC),這句話既體現(xiàn)了閱讀源碼的重要性,也說明了閱讀源碼對(duì)于大牛來說也是一件令人頭疼的事。閱讀源碼對(duì)于中級(jí)工程師尤為重要,通過代碼可以看大牛的實(shí)現(xiàn)途徑,方法,思想,如果你源碼看多了,最終你會(huì)發(fā)現(xiàn)同樣的效果可以有多種實(shí)現(xiàn)方式,具體的實(shí)現(xiàn)方式就和自己的編碼風(fēng)格有關(guān)系。對(duì)于一個(gè)中級(jí)android開發(fā)者需要閱讀什么源碼,android系統(tǒng)源碼?第三方開源庫(kù)源碼?完整項(xiàng)目源碼?這些源碼都是大牛寫的,學(xué)習(xí)價(jià)值很大,那我們應(yīng)該學(xué)習(xí)哪一個(gè)?首先我們要明白我們的目的:短時(shí)間提升我們編碼技能,希望在工作能體現(xiàn)出來。從這個(gè)角度來看,閱讀android系統(tǒng)源碼的價(jià)值就不是很高。所以對(duì)于一個(gè)中級(jí)工程師來說,要把第三方開源庫(kù)和完整項(xiàng)目作為主要對(duì)象。下面我就講一下看第三方開源庫(kù)和完整項(xiàng)目源碼的一些方法和技巧。

前期準(zhǔn)備:

如何高效的看fuck source code,首先需要解決的是我們用什么看,我推薦看第三方開源庫(kù)使用sublime text,看完整項(xiàng)目用android studio。第三方開源庫(kù)無須編譯,直接看代碼,使用sublime text代碼高亮整潔,看的很爽。效果如下:

也許你剛開始不適應(yīng),不要擔(dān)心,用不了幾天你就離不開它了。那問題又來了,看代碼我習(xí)慣了這種高亮風(fēng)格,再也無法忍受android studio的黑白風(fēng)格的代碼了。沒關(guān)系,很簡(jiǎn)單,只要設(shè)置一下,android studio就可以和sublime text 達(dá)到同樣的效果。先來看看設(shè)置后的效果吧。


只需下載jar包,導(dǎo)入android studio即可。設(shè)置方式詳見README文件。

開始閱讀源碼:

如果你是一個(gè)閱讀源碼的新手,那我建議你首先找一些代碼量少的,自己感興趣的來看??梢詤⒖嘉抑皩戇^的一片文章2016年最值得學(xué)習(xí)的五大開源項(xiàng)目(這些都是完整的項(xiàng)目,如果想看一些第三方開源庫(kù),可以來這里開源項(xiàng)目解析)

如何閱讀第三方開源庫(kù)

選擇一些當(dāng)下熱門、學(xué)習(xí)價(jià)值高的第三方開源庫(kù),我認(rèn)為最值得學(xué)習(xí)的是Volly,開源項(xiàng)目解析中也有對(duì)Volly的解析。

首先下載源碼,然后在網(wǎng)上找一些源碼解析文章來看看,不要忘記,我們的宗旨之一“高效”,這樣就可以最快的對(duì)項(xiàng)目原理有一個(gè)大體的了解,再去看源碼具體實(shí)現(xiàn)就很快了。這里很重要的一點(diǎn)是如何找一些有價(jià)值的學(xué)習(xí)資料,我們最常有的就是搜索引擎,今天就主要說說如何選擇搜索引擎,以后有機(jī)會(huì)再寫寫如何篩選有價(jià)值的學(xué)習(xí)資料。搜索引擎:Google>bing>baidu.其實(shí)我不想黑百度,因?yàn)槲液芟肴グ俣?,既然現(xiàn)在還不是一名百度工程師,就說一下事實(shí)吧。Google是把你想要的,最有價(jià)值的東西呈現(xiàn)在你面前,并且他做到了。Google會(huì)把符合搜索結(jié)果、點(diǎn)擊量最大的、最有價(jià)值的東西排在首頁(yè),所以你很輕松就會(huì)找到你想要的東西(如果你上不了Google可以點(diǎn)這里)。bing和Google差不多,想法一樣,但是和Google相比,bing搜索到的有價(jià)值結(jié)果不是很多,沒有Google的理想,還有一些來著百度知道。百度呢,第一眼看到的是廣告,一些內(nèi)容來著百度知道,呈現(xiàn)的搜索結(jié)果不是按價(jià)值排序,你需要自己慢慢找。所以首推Google。

再你看了一些解析文章之后,理解了項(xiàng)目原理,對(duì)大部分類的功能有了一定的了解,再來看源碼的具體實(shí)現(xiàn)方式。在閱讀的過程中總會(huì)遇到一些看不懂的代碼,你可以先放一放,繼續(xù)往下看。這樣反復(fù)幾遍,就會(huì)對(duì)代碼的理解不斷加深。我認(rèn)為閱讀第三方開源庫(kù)主要是學(xué)習(xí)設(shè)計(jì)思想。

如何閱讀開源完整項(xiàng)目

毋庸置疑使用android studio閱讀完整項(xiàng)目,很高效。閱讀完整項(xiàng)目涉及的東西比較多,項(xiàng)目的架構(gòu)不同,使用的第三方庫(kù)不同,這就要求需要對(duì)項(xiàng)目中自己不熟悉的東西進(jìn)行學(xué)習(xí),也不需要都弄懂了再去看項(xiàng)目,邊看邊學(xué),遇到不會(huì)的就去搜資料學(xué)習(xí),這樣最快了。

第一步下載項(xiàng)目,在真機(jī)或虛擬機(jī)上運(yùn)行,最直觀的體驗(yàn)app的功能。然后看app的架構(gòu),mvc、mvp、mvvp,目前項(xiàng)目中mvvp用的比較少。然后打開build.gradle文件看看項(xiàng)目用了哪些網(wǎng)絡(luò)請(qǐng)求庫(kù)、圖片加載庫(kù)、其他庫(kù)。如果有不熟悉的,上網(wǎng)找一些文章學(xué)習(xí)一下。然后就打開manifasts文件找的入口activity,順藤摸瓜往下看。同樣,不懂的地方放過??赐暌槐?,再進(jìn)行下一步,不要指望一遍就可以搞定。這里給大家推薦一個(gè)特別值得學(xué)習(xí)的項(xiàng)目LookLook(Github地址:https://github.com/xinghongfe...):mvp架構(gòu),RxJava + Retrofit+okhttp,glide。項(xiàng)目結(jié)構(gòu)清晰,代碼量不是很大,學(xué)習(xí)價(jià)值高。方法基本也就這么個(gè)方法,剩下就是跟者自己的感覺走。

如果你的項(xiàng)目看多了之后你會(huì)發(fā)現(xiàn)每個(gè)項(xiàng)目可以分為以下幾個(gè)模塊:

UI(activity ,fragment)

adapter

數(shù)據(jù)實(shí)體

第三方開源庫(kù)的使用,網(wǎng)絡(luò)、圖片、其他工具

一些工具類

項(xiàng)目配置類

自定義View

其他(數(shù)據(jù)庫(kù),activity、fragment的基類,API等)

任何事情都可以熟能生巧,在看了一些開源項(xiàng)目后,自己最好開發(fā)一個(gè)??错?xiàng)目源碼是一個(gè)很費(fèi)腦子的事情,不能急于求成,我之前就有點(diǎn)著急,看了很多項(xiàng)目,高強(qiáng)度的進(jìn)行了20多天后,精力消耗很大,掉頭發(fā)很嚴(yán)重,大腦嚴(yán)重勞累過度,休息了一個(gè)星期才緩解過來。所以建議大家制定一個(gè)合理的學(xué)習(xí)時(shí)間,不要讓自己強(qiáng)度太大。

最后的感覺就是,看似不可思議的事情,只要自己靜下心來,按部就班,最后發(fā)現(xiàn)都不過如此嘛。小伙伴們開始 趕快開始Read The Fucking Source Code 吧。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/65099.html

相關(guān)文章

  • Android 研發(fā)工程師圖書一覽(2016年版)

    摘要:番茄工作法簡(jiǎn)約而不簡(jiǎn)單,本書亦然。在番茄工作法一個(gè)個(gè)短短的分鐘內(nèi),你收獲的不僅僅是效率,還會(huì)有意想不到的成就感。 @author ASCE1885的 Github 簡(jiǎn)書 微博 CSDN 知乎本文由于潛在的商業(yè)目的,不開放全文轉(zhuǎn)載許可,謝謝! showImg(/img/remote/1460000007319503?w=728&h=792); 廣而告之時(shí)間:我的新書《Android 高...

    MadPecker 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<