"沒有經(jīng)驗(yàn)的技術(shù)差底子薄的初級程序員,如何閱讀項(xiàng)目源碼? "
"有人閱讀過 mybatis 的源碼嗎 ?就看一個(gè)初始化過程就看的已經(jīng)頭暈眼花了,小伙伴們支支招吧!"
"源碼應(yīng)該怎么閱讀,我曾經(jīng)嘗試閱讀一些源碼,例如alibaba的druid中sqlparser部分,spring-mvc,但是發(fā)現(xiàn)很吃力,都說debug是最好的閱讀方式,我在debug時(shí)經(jīng)常有跟丟的現(xiàn)象……就是走著走著感覺好像進(jìn)入了一些我當(dāng)前不太關(guān)注細(xì)枝末節(jié)。 "
。。。。。。
估計(jì)很多人都有這樣的疑惑。
我非常能理解小伙伴們的痛苦,因?yàn)槲乙彩沁@么痛苦著走過來的。
閱讀優(yōu)秀源碼的好處想必大家都知道,學(xué)習(xí)別人優(yōu)秀的設(shè)計(jì),合理的抽象,簡潔的代碼...... 總之是好處多多。
但是真的把龐大的代碼放到你的面前,就如同一個(gè)巨大的迷宮,要在其中東轉(zhuǎn)西轉(zhuǎn)尋出一條路來,把迷宮的整個(gè)結(jié)構(gòu)搞清楚,理解核心思想,真心不容易。
在閱讀由面向?qū)ο蟮恼Z言如Java寫的代碼時(shí),會(huì)發(fā)現(xiàn)接口和具體的實(shí)現(xiàn)經(jīng)常對應(yīng)不起來,不太清楚一個(gè)功能到底是怎么在哪個(gè)實(shí)現(xiàn)類中才能找到。 不像C語言,就是函數(shù)調(diào)用函數(shù),相對還好點(diǎn)。
如果是動(dòng)態(tài)語言如Ruby,Python, 一個(gè)變量的類型甚至都不容易知道,閱讀的難度大大增加。
還有一個(gè)重要的原因,現(xiàn)在我們看到的源碼基本上都經(jīng)過若干年發(fā)展、經(jīng)過很多人不斷地完善的,枝枝蔓蔓非常多,魔鬼都在細(xì)節(jié)中。 閱讀的時(shí)候很容易陷進(jìn)去, 看了幾十層函數(shù)調(diào)用以后,就徹底懵了,就放棄了: 甭管你把源碼吹得天花亂墜, 老子再也不看了。
我不是什么資深程序猿,但還是想稍微分享一下經(jīng)驗(yàn)吧。
差不多就是醬紫啦
如果你在看GCC源碼的話,當(dāng)我沒說。
我瞄過一眼GCC源碼,甚至妄圖把它們clone下來。
技不如人,甘拜下風(fēng)。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。