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