更新時間:2020-03-04 11:11:53 來源:動力節(jié)點 瀏覽2445次
不管對于哪個段位的程序員來說,讀源碼都是一件好處頗多的事情,特別于初學(xué)者而言,這能迅速的吸納優(yōu)秀框架精華代碼營養(yǎng),迅速成長。不巧的是,晦澀難懂的源碼,很容易讓人心生怯意。今天分享一下讀源碼的方法。

一、了解框架解決了什么問題
這不光對讀源碼有幫助,對整個學(xué)習(xí)都很有幫助。思考一個問題:你學(xué)習(xí)Vue\React的原因,除了它們?nèi)缛罩刑?,再不學(xué)習(xí)都不好意思找工作了,還摻雜了一些它們的某些優(yōu)秀特性能給我?guī)砟承┖锰幍乃伎济矗?/p>
新潮的框架,開發(fā)者需要而且也應(yīng)該去了解,相比之前的技術(shù)體系,這個框架到底解決了什么問題,優(yōu)勢在哪,懷著目的去學(xué)習(xí)才不至于迷茫。例如Vue\React最大的優(yōu)點是什么呢?組件化吧,帶著框架是如何解決這個問題的疑問去學(xué)習(xí),定能事半功倍。
二、了解框架的設(shè)計思想
我們看不懂源碼(或者看起來舉步維艱),并不是因為不懂某一句語法,而是不明白作者的思路。舉一個簡單的例子:
getAngle方法接收三個坐標(biāo)參數(shù),可以計算出point2頂角的弧度值,如果不告訴你這使用了運用三角形的余弦定理,恐怕你看半天也看不出來這是怎么算出來的。
了解框架的設(shè)計思想的方法:
1.到框架的官網(wǎng)看文檔。開源的框架,甭管詳不詳細(xì),這肯定是第一手權(quán)威資料
2.到網(wǎng)上搜別人的分析總結(jié)(源碼分析也不會少),大多數(shù)情況下,都會有大神已經(jīng)研究過了,站在巨人的肩膀上,能省不少事
另外,設(shè)計思想是整個框架層面的,對于每一個實現(xiàn)細(xì)節(jié),又會使用不少設(shè)計模式,例如函數(shù)式編程(Js中最為常用)、單例模式、代理模式、工廠模式等等,這就需要平時的積累了。有一定代碼量的積累之后,建議閱讀一些設(shè)計模式類的書籍,對自己的代碼設(shè)計,以及閱讀別人的源碼,都很有益處。
三、搭建調(diào)試環(huán)境,摸清執(zhí)行主脈絡(luò)
細(xì)分到每個模塊,要對模塊功能有個整體的把握,如何去做到這個“把握”?除了官方文檔和網(wǎng)上查閱的資料,最好的辦法就是寫一個簡單的Demo,搭建好測試環(huán)境,增加一些調(diào)試信息,自然能理清除框架的生命周期中,每一步需要調(diào)用那個模塊(對于目錄結(jié)構(gòu)很清晰的優(yōu)秀框架,有時候也可以憑直覺猜測,打印日志確認(rèn))
四、分清主次
框架源碼就是一顆枝繁葉茂的參天大樹,而你要做的事情是從根部往上爬。樹要這么多分支,時間又是這么昂貴,閱讀的策略很重要。我們的閱讀路徑,要以主要流程為主(也就是樹的主驅(qū)趕,這樣才能盡可能快的到達(dá)頂點),對于一些細(xì)枝末節(jié),再這之后再來慢慢啃(或者有必要的時候)。
例如,要去閱讀Vue的源碼,有個目錄是解析模板,生成語法樹AST從而最終生成RenderFunction的,其實這一步最關(guān)鍵的是這個RenderFunction的生成結(jié)果,對于如何去解析模板、生成語法樹,可以先放一放,回頭需要的時候再回頭看。否則你很容易卡死在某個點上出不來,從而產(chǎn)生放棄的念頭
如果有人領(lǐng)路呢?看過小說的都知道,沖關(guān)的時候如果有人指導(dǎo),借鑒前人的經(jīng)驗,可以少走很多彎路。人生不過數(shù)十載,何不把時間節(jié)省出來去多學(xué)點東西,多做點有意義的事情。
以上就是動力節(jié)點Java培訓(xùn)機(jī)構(gòu)小編介紹的“程序員如何Java框架學(xué)習(xí)”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀