精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我用笨辦法啃下了一個開源項目的源碼!

開源
閱讀源碼有一個非常非常有用的技巧,那就是你別下載了源碼到本地IDE里然后直接胡亂的翻看,那是不行的。

前言

這篇文章,給大家簡單介紹一下很多同學都非常關心的一個問題:如何閱讀一個開源項目的源碼。

我相信很多同學都希望能夠去閱讀一些源碼來提升自己的技術水平,畢竟在面試的時候,很多大廠都經常會扣到非常深入的底層源碼。


1、從最簡單的源碼開始:別幻想一步登天

其實開源項目有很多種,比如說有Spring這種框架類的,還有比如數據庫連接池、log4j等這種工具類的。

當然還有特別重型的中間件類的,比如說RocketMQ、Kafka、Redis。更有甚者也有上百萬行代碼的大數據類的,比如Hadoop、Spark。

所以如果很多同學想要讀源碼的話,面臨的第一個問題:不知道從何下手。

那么是不是說只要隨便挑選一個開源技術的源碼,采用愚公移山的精神,直接硬著頭皮去讀,堅持就是勝利,鐵杵一定就能磨成針嗎?

不是的!其實很多同學始終都沒掌握到閱讀源碼的順序、技巧和方法,所以導致嘗試看過一些源碼,卻還是看不懂。

首先你要明白一個前提,比如說Kafka的作者,Hadoop的作者,他們本身都是有很多年經驗,技術功底極為扎實,都是技術大牛的人,站在一個很高的角度去設計和開發(fā)出來了這些極為出色的分布式系統(tǒng)。

那么如果你的技術實力達不到他們的水平,你覺得你直接去讀他們寫出來的源碼,就能看懂嗎?

那估計是很難的,因為里面蘊含的各種底層技術細節(jié),分布式架構設計思想,還有復雜的算法和機制,都不是你能理解的。

所以建議大家第一點,想看源碼,先挑一個最最簡單的,適合自己技術水平的去看。

給大家舉個例子,比如說你平時常用的一些源碼都有什么?顯而易見,每個人都會用Spring Web MVC、Spring、MyBatis、Spring Boot,等等。

其實這些開源框架的源碼也不能說就簡單了,他們同樣蘊含了開源作者深厚的技術功底在里面。

但是你要考慮一點,這些開源項目已經相對來說是普通人可以優(yōu)先觸碰的了。因為他們不是分布式系統(tǒng),不涉及到復雜的架構,網絡通信,IO,等技術細節(jié)。

他們大多就是依賴一些底層的Java基礎技術,比如說動態(tài)代理、Servlet、HTTP協(xié)議、JDBC等等。

而他們依賴的那些基礎,大多數普通工程師都是掌握的,你完全可以優(yōu)先嘗試去閱讀一些這種開源框架類的源碼。

2、循序漸進:先搞定底層依賴的技術

好,現(xiàn)在假如說你經過了幾個月的努力,把一些開源框架的源碼,比如上面說的SSM三大框架的源碼都看過了,現(xiàn)在你的技術實力有了進一步的提升。

這些提升,主要體現(xiàn)在對開源項目的設計思想,組件設計,組件交互,還有框架封裝,等等,都有了進一步的理解。

接下來,你就可以嘗試去讀一些更難一點的源碼。

給大家舉個例子,假設你這個時候去閱讀Kafka的源碼。沒問題。但是這里有一些是你需要注意的地方,Kafka的底層是重度依賴ZooKeeper的

如果你不把ZooKeeper給掌握精通的話,會導致Kafka你也難以理解。

所以這個時候你得先把底層依賴的技術給搞定,那么你就得回過頭去先閱讀ZooKeeper的源碼,把ZK這個技術先給搞精通一些。

同理,如果你在研究ZK的時候,發(fā)現(xiàn)他底層有一些技術是你掌握不好的,比如你發(fā)現(xiàn)他大量運用了Java并發(fā)包下的東西。

因此如果你對Java并發(fā)包掌握的不夠好,那么建議你去把Java并發(fā)包下的源碼先仔細研究一下。

通過這種方式,你可以自行追蹤到自己還不熟悉的很多底層技術,然后一個一個擊破,把這些底層依賴的技術的源碼你可以先研究透徹一些。

然后,你再一步一步往上層的技術去研究,這樣看那些復雜技術的源碼就會輕松很多了。


3、一定要以Hello World作為入口來閱讀

閱讀源碼有一個非常非常有用的技巧,那就是你別下載了源碼到本地IDE里然后直接胡亂的翻看,那是不行的。

一般建議就是基于一個開源技術寫一個最最基本的HelloWorld程序,就是一個入門級的程序,然后把他的核心功能給跑通。

舉個例子,假如說你要閱讀ZooKeeper的源碼,那么你先寫一個ZK的HelloWorld程序。

比如說先連接,然后創(chuàng)建一個znode,對znode注冊一個監(jiān)聽。接著觸發(fā)這個監(jiān)聽,接著再關閉連接,就這樣的一個簡單的程序。

然后就可以打斷點,跟蹤這個Hello World級別的源碼一步一步調試追蹤,他是如何發(fā)起和建立連接的,底層的代碼流程是什么樣的。

4、抓大放小,邊寫注釋邊畫圖

在看源碼的過程中,很多人會被核心流程中混雜的一些特殊業(yè)務邏輯的處理給搞懵。

給大家舉個例子,看下面的代碼,是一段隨手寫出來演示的:

checkUser();

fetchFromPeers();

countMetrics();

大家可以看到,上面就三行代碼,從方法名稱就可以看出來,先是做了一個權限檢查之類的操作,然后是核心業(yè)務邏輯去抓取數據,最后是做了一些metric指標統(tǒng)計。

那么很多同學看源碼的時候,就喜歡把每一行代碼都看懂,最后不停的點到很深層的地方去,把自己給繞暈了。最后淹死在源碼的海洋里。。。

其實這個是不對的,這就是沒有掌握源碼閱讀的一大典型原則:

抓大放小

比如上面的三行代碼,你應該直接跳過第一行和第三行,連看都別去看,直接進入第二行核心邏輯。

也就是說,你只需要抓最核心的代碼流程就可以了,那些無關緊要的代碼,千萬別有強迫癥點進去反復看,那樣絕對會讓你對源碼從入門到放棄。

所以,再次強調!強調!強調!重要的事情說三遍。閱讀源碼,你一定要有粗大的神經,反復告訴自己,剛開始先把握代碼的主流程即可。

很多細節(jié)看不懂直接跳過去,別有強迫癥讓自己看明白每個細節(jié)。

此外,大家一定要形成一個習慣,在看源碼的過程中盡量多自己對源碼寫一些注釋。

你應該結合自己的理解,盡可能把自己對源碼閱讀過程中的思考都寫成注釋寫在源碼里。

這個習慣可以促使你一邊閱讀一邊思考,而且有自己注釋的源碼,是你寶貴的財富。

此外,還有一個非常重要的點,那就是一定要多畫圖

你可以嘗試在閱讀的過程中,提取源碼運行的核心流程,一邊讀源碼,一邊自己畫在圖上,可以用那種畫圖軟件來作圖即可。

大家記住,人腦對圖片的敏感度,是遠高于對文字或者代碼的,這個是大腦機制決定的。

筆者公眾號寫的很多篇文章,里面對各種技術的講解,無一不是通過大量的畫圖。相比于冗長的文字描述,圖片會讓人容易理解接受的多。

通過畫圖,能幫助你抽象和總結出源碼的核心流程,以后如果你要回顧和復習,直接看圖即可。

5、反復三遍:真正理解源碼

另外一個要注意的點,源碼這個東西,是多看幾遍理解的就會越深刻。

因為你看第一遍,按照上面說的抓大放小的思路,可能很多東西就直接略過去了,因為剛開始你看不懂一些非核心代碼在干什么。

但是第一遍看完以后,通過寫注釋,自己動手畫圖,對一個開源項目的核心流程、架構以及原理都有了一定的理解了。

此時再去讀第二遍源碼,再過一遍,你會發(fā)現(xiàn)之前很多看不懂的細節(jié)都能看懂了。然后再看第三遍源碼,你會發(fā)現(xiàn)大多數的代碼自己都能看懂了。

所以說任何一個源碼,都是要至少反復看三遍的過程,不是看一遍就可以完成的。

6、借力打力:參考源碼分析書籍及博客

其實現(xiàn)在有很多對熱門開源項目進行源碼分析的書籍以及博客,你大致可以認為就是一些技術比較牛的兄弟自己看了源碼之后,寫出來的一些分析和感悟。

但是那畢竟是別人的東西,如果你上來就直接看源碼分析書籍或者博客,那么不一定可以看懂,因為文字的信息傳遞未必能很好的讓你理解有些復雜的東西。

所以比較建議的方式,就是先自己嘗試看幾遍,有了一定的理解之后,此時可以借助源碼分析書籍或者是博客,參考其他技術牛的同學對這個源碼理解,結合自己之前的一些思考,綜合起來進行分析,相信一定會大有裨益。

你會發(fā)現(xiàn)人家的一些理解可以很好的補充你沒想明白的一些問題,或者是忽略的一些細節(jié)。

不過,需要提醒的一點,網上不少博客,包括一些書籍,他們寫出的一些源碼分析,可能是錯誤的。

所以,盡信書不如無書,你需要帶著一定的糾錯眼光。在和你的理解相悖時,不一定就是你錯了。

7、最后寄語:用幾年時間鍛造自己的核心技術

其實上面那個過程說起來很簡單,做起來非常的困難。

因為在上面任何一個步驟,閱讀的過程中你都有大量的東西是不會的,而且會覺得很難,甚至經常有想放棄的沖動。

畢竟人的大腦天生就是會對困難的事情產生抗拒感,這是本能,天生就是對舒服、放松的事情有向往。

但是只有那些能克服人的動物本能,惰性本能,迎難而上,堅韌不拔的同學,才能真正攻克各種技術難題。

讓自己的大腦不停的開動,不停的思考上面那個過程,也許你要持續(xù)一年才能有個小的開悟,持續(xù)三年才能有一定的心得,持續(xù)五年甚至八年,才能說真的融匯貫通,打通任督二脈,成為技術大牛。

但是堅持這個事情同樣是很可怕的,一旦你堅持做到了,那么你將鍛造出來自己最硬核的技術實力,遠遠不是普通人,或者剛畢業(yè)的年輕同學可以追上你的。技術深度、技術功底,這是每一個工程師最最硬核的技術實力。

希望各位同學可以從現(xiàn)在開始,嘗試著用筆者分享的技巧閱讀源碼。跳出舒適區(qū),去擁抱更大的舒適區(qū)。

真正體驗一下讀透源碼之后,根據報錯日志,從源碼層面精確定位項目問題、精確制導線上bug,感受一下這種上帝視角解決問題的快感吧!

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2012-06-27 10:16:12

開源項目CodePlex

2017-11-07 11:36:57

開源項目代碼

2022-02-28 08:23:02

開源項目重構

2019-01-15 10:02:06

Kubernetes開源工具微服務

2017-06-20 14:29:12

Rec開源項目

2019-05-27 08:29:32

啟動項目PMP

2011-08-25 09:03:40

2012-11-29 09:49:17

軟件項目項目

2019-04-30 09:05:16

項目啟動PMP

2013-07-24 15:26:57

MOCO

2015-07-29 10:00:16

開源項目

2014-10-21 10:25:50

程序員

2014-08-11 16:32:04

架構項目

2014-08-27 10:20:10

項目項目分析

2020-07-15 15:09:21

Python掃雷游戲Windows

2021-02-24 13:58:07

區(qū)塊鏈比特幣安全

2020-08-13 17:59:20

區(qū)塊鏈區(qū)塊鏈項目數字貨幣

2019-08-06 13:37:55

微服務架構數據

2020-11-15 23:23:21

JavaScriptAPI開發(fā)

2012-03-06 09:17:11

開源項目運作
點贊
收藏

51CTO技術棧公眾號

91麻豆成人久久精品二区三区| 日韩免费电影| 懂色中文一区二区在线播放| 亚洲精品视频免费观看| 99久久久精品免费观看国产| 变态另类丨国产精品| 亚洲啊v在线| 综合久久综合久久| 久久国产精品-国产精品| 中文字幕有码视频| 99国产精品视频免费观看一公开 | av中文字幕观看| 夜夜嗨一区二区| 久久天天躁狠狠躁夜夜躁| 青草视频在线观看视频| 二区三区在线播放| 国产不卡在线一区| 国产欧美婷婷中文| 久久国产黄色片| 欧美激情自拍| 日韩在线免费高清视频| 茄子视频成人免费观看| caoporm免费视频在线| 免费看黄色91| 57pao成人国产永久免费| 荫蒂被男人添免费视频| 99精品国产九九国产精品| 一本在线高清不卡dvd| 乱色588欧美| 亚洲精品久久久狠狠狠爱 | 男女爱爱视频网站| 国产一级二级三级在线观看| 国产欧美日本| 美女扒开尿口让男人操亚洲视频网站| 性刺激的欧美三级视频| 蜜桃av在线| 亚洲第一主播视频| 国产免费内射又粗又爽密桃视频| 国产xxxx孕妇| 精品一区二区三区日韩| 国产精品国语对白| 日韩不卡在线播放| 国产精品一级| 欧美在线观看网站| 欧美一级特黄视频| 亚洲尤物精选| 日韩**中文字幕毛片| 亚洲男人的天堂在线视频| 亚洲国产免费| 97视频在线观看播放| 国产午夜福利一区二区| 亚洲性图久久| 性日韩欧美在线视频| 日本免费在线播放| 国产日韩一区二区三区在线播放| 三级精品视频久久久久| 51妺嘿嘿午夜福利| 凹凸成人精品亚洲精品密奴| 在线一区二区日韩| 三级黄色在线观看| 欧美日本一区二区高清播放视频| 亚洲精品视频中文字幕| 国产三级视频网站| 国产一区毛片| 日韩网站免费观看| 国产这里有精品| 荡女精品导航| 亚洲精品理论电影| 97伦伦午夜电影理伦片| 操欧美老女人| 久久综合电影一区| 妺妺窝人体色www婷婷| 黄色精品网站| 国产99久久精品一区二区 夜夜躁日日躁 | 亚洲成人毛片| 日韩一区二区精品| 日韩无码精品一区二区| 免费观看久久av| 亚洲天天在线日亚洲洲精| 网爆门在线观看| 欧美精品一线| 国产成人福利网站| 亚洲中文字幕一区二区| 亚洲视频碰碰| 日本久久精品视频| 国产美女www爽爽爽视频| 国产精品美女久久久| 国产成人欧美在线观看| 国产精品区在线观看| 不卡的av电影| 亚洲精品免费在线看| 日韩在线观看视频一区二区三区| 麻豆国产91在线播放| 97人人澡人人爽| 九一在线视频| 一区二区三区在线视频播放| aa在线免费观看| 亚洲三级在线| 亚洲欧洲在线播放| 欧美日韩大片在线观看| 视频一区二区三区在线| 97av视频在线| 国产男男gay体育生网站| 成a人片亚洲日本久久| 亚洲精品一区二区三区樱花 | 国产一二三在线视频| 欧美黑人粗大| 亚洲国产精品悠悠久久琪琪| 欧美福利在线视频| 老鸭窝亚洲一区二区三区| 亚洲a一级视频| 成年女人的天堂在线| 亚洲国产日韩精品| 欧美一级xxxx| 欧美日韩精品在线一区| 91福利视频网| 狠狠综合久久av一区二区| 国产欧美视频一区二区三区| 日本福利视频在线| 成人在线视频中文字幕| 一区二区三区天堂av| 欧美a∨亚洲欧美亚洲| 国产麻豆精品久久一二三| 日韩久久精品一区二区三区| 国产资源在线观看入口av| 欧美高清性hdvideosex| 成人免费在线观看视频网站| 久久中文资源| 欧美极品在线播放| 日本少妇全体裸体洗澡| 国产麻豆成人精品| 麻豆一区二区三区在线观看| 国产激情欧美| 中文字幕日本欧美| japanese国产在线观看| 六月丁香综合在线视频| 欧美亚州在线观看| 欧美大片免费高清观看| 日韩精品中文在线观看| 国产尤物在线视频| 97se亚洲国产综合自在线不卡| 色综合电影网| 国产成人免费9x9x人网站视频| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲国产成人精品女人久久久 | 亚洲国产精品成人久久综合一区| 亚洲日本精品| 最新真实国产在线视频| 在线免费观看日本一区| 国产美女免费网站| 日韩综合在线视频| 先锋影音亚洲资源| 亚洲成人a级片| 免费av在线一区| www.好吊色| 成人爱爱电影网址| 精品人妻少妇一区二区| 日韩国产激情| 中文字幕日韩在线视频| 亚洲中文字幕一区二区| 亚洲欧美国产高清| 精品一区二区三区四区五区六区| 精品国产一区二区三区av片| 国产成人精品免费视频| av资源网站在线观看| 91精品婷婷国产综合久久| 99久久婷婷国产综合| 高清不卡在线观看av| 美女日批免费视频| 色婷婷狠狠五月综合天色拍 | 久久99精品久久久久子伦| 中老年在线免费视频| 夜夜嗨av色一区二区不卡| 一本色道久久综合无码人妻| 亚洲美女在线国产| 亚洲综合自拍网| 日本不卡高清视频| 国产日韩视频在线播放| 国产精品色在线网站| 国产精品91久久久| 18在线观看的| 亚洲欧美第一页| 国产精品怡红院| 亚洲成人7777| 色屁屁草草影院ccyy.com| 国产综合成人久久大片91| 99久久国产综合精品五月天喷水| 亚洲国产中文在线| 2019亚洲日韩新视频| av在线电影网| 欧美精品一区二区三区视频| 国产精品无码粉嫩小泬| 亚洲综合免费观看高清完整版 | 国产三级在线观看视频| 精品国产91乱高清在线观看 | 国产人成一区二区三区影院| 国产精品探花在线播放| 国产欧美二区| 国产在线拍揄自揄拍无码| 欧美调教在线| 亚洲最大av在线| 最新日韩一区| 992tv成人免费影院| 久久精品视频免费看| 欧美日韩一区二区三区| 亚洲波多野结衣| 日韩精品欧美成人高清一区二区| 免费国产一区二区| 国产精品18| 国产精品99久久久久久久久| 国产一线二线在线观看| 日韩最新在线视频| 国产中文在线| 日韩电影大片中文字幕| www.日本在线观看| 欧美日韩在线观看一区二区| 六月丁香激情综合| 亚洲福利视频三区| 国产精品视频一区二区三| 国产欧美日韩久久| 久久精品一区二区免费播放 | 一区二区三区四区毛片| 免费一级欧美片在线播放| 男人添女荫道口女人有什么感觉| 国产一区二区三区亚洲| 国产一区二区色| 日韩国产网站| 亚洲人在线视频| 六月丁香综合网| 日韩欧美激情一区| 久久9999久久免费精品国产| 亚洲三级电影网站| 久草手机视频在线观看| 国产精品色哟哟| 亚洲成人黄色av| 欧美国产日韩亚洲一区| 欧美大波大乳巨大乳| 久久综合久久综合九色| 亚洲色图14p| 亚洲制服中文字幕| 精品一区二区免费在线观看| 国产美女18xxxx免费视频| 麻豆精品视频在线| 天天干天天玩天天操| 久久爱另类一区二区小说| av在线网址导航| 激情国产一区二区| 91丨porny丨九色| 国产91精品在线观看| 亚洲美女精品视频| 北岛玲一区二区三区四区| 精品人妻一区二区三区日产| 99久久综合狠狠综合久久| 亚洲色图14p| 国产欧美日本一区视频| 懂色av粉嫩av浪潮av| 亚洲欧美在线高清| 性色av无码久久一区二区三区| 久久日韩精品一区二区五区| 国产免费一区二区三区网站免费| 国产精品一区一区三区| 亚洲综合中文网| 99视频国产精品| 久久久久无码精品国产sm果冻| 国产白丝精品91爽爽久久| 久久久无码人妻精品无码| 国产精品综合| 黄色一级二级三级| 久久精品国产亚洲一区二区三区| 精品视频免费在线播放| 最新日韩av| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 亚洲久久一区二区| 无码人妻精品一区二区三区在线| 日韩欧美一区二区三区在线视频| 97成人在线视频| 日韩成人影音| 91欧美精品午夜性色福利在线| 日韩另类视频| 97欧洲一区二区精品免费| 欧美一性一交| 一区二区三区不卡在线| 欧美在线亚洲综合一区| 黄www在线观看| 韩国欧美一区二区| 黄色工厂在线观看| 亚洲免费电影在线| 亚洲婷婷综合网| 制服丝袜中文字幕亚洲| 天天综合永久入口| 69精品人人人人| 天天干视频在线观看| 日日骚久久av| 丝袜老师在线| 亚洲综合社区网| 欧美精品一二| 久久精品视频16| 久久99精品国产麻豆婷婷洗澡| 免费看污黄网站| 成人精品视频一区| 欧美h片在线观看| 色综合天天综合在线视频| 精品国产乱码久久久久久蜜臀网站| 欧美美女激情18p| 狠狠狠综合7777久夜色撩人| 欧美激情亚洲视频| 亚洲爱爱视频| 久久久亚洲综合网站| 午夜视频一区| 免费成年人高清视频| 久久久99精品免费观看| 国产精品成人av久久| 欧美日韩日日摸| 久久久久久久影视| 97久久伊人激情网| 伊人精品久久| 欧美日韩一区二区三区电影| 日韩不卡在线观看日韩不卡视频| 在线观看亚洲色图| 久久免费电影网| 国产亚洲自拍av| 欧美一级淫片007| 欧美高清视频| 国产精品美女久久久久久免费| 欧美视频精品| 日韩欧美三级电影| 噜噜噜躁狠狠躁狠狠精品视频 | 五月激情久久| 久久免费一区| 亚洲理论在线| 久久久老熟女一区二区三区91| 久久综合九色综合97_久久久| 黄色aaa视频| 精品成人久久av| 三级网站免费观看| 97久久国产精品| 婷婷精品在线观看| 久久精品免费一区二区| 91在线播放网址| 免费av网站在线| 亚洲精品一区在线观看香蕉 | 97视频在线观看播放| 一区二区三区在线资源| 久草视频这里只有精品| 成人激情视频网站| 日韩精品一区二区三区国语自制| 欧美日韩精品一区二区在线播放| 精品人妻一区二区三区含羞草| 亚洲电影成人av99爱色| 国产污视频在线播放| 久久久久久国产精品一区| 免费亚洲一区| 免费一级做a爰片久久毛片潮| 亚洲美女淫视频| 亚洲成人久久精品| 国内精品久久久久久影视8| 成人香蕉社区| 那种视频在线观看| 国产日韩欧美电影| 欧美乱大交做爰xxxⅹ小说| 欧美三电影在线| a毛片在线观看| 国产伦精品一区二区三区视频免费 | 亚洲老头同性xxxxx| 日韩中文视频| 奇米777四色影视在线看| 成人av影院在线| 欧美特级黄色片| 操日韩av在线电影| 久久久免费毛片| 欧美黄色性生活| 亚洲综合一二三区| 欧美人体大胆444www| 国产欧美亚洲精品| 亚洲区欧美区| 国产又粗又猛又爽又黄的视频四季| 婷婷成人综合网| 国产福利第一视频在线播放| 91亚洲精品一区| 日韩一级网站| 少妇高潮在线观看| 亚洲丁香久久久| 久久久久伊人| www.成年人视频| 久久久影院官网| 国产精品-色哟哟| 57pao成人永久免费视频| 午夜精品一区二区三区国产 | 妞干网在线视频观看| 91丨porny丨户外露出| 7777久久亚洲中文字幕| 91精品国产免费久久久久久 | 最新欧美日韩亚洲| 成人免费看的视频| 亚洲综合精品在线| 欧美亚洲成人网| 欧美ab在线视频| 亚洲综合欧美综合| 亚洲国产精品字幕| 一区在线不卡|