為什么讀原始碼
很多人一定有這種感受:原始碼在作業中有用嗎?用處大嗎?很長一段時間內我也有這樣的疑問,認為哪些有事沒事扯原始碼的人就是在裝,只是為了提高他們的逼格而已,
那為什么我還要讀原始碼呢?一剛開始為了面試,后來為了解決作業中的問題,再后來就是個人喜好了,說的好聽點是有匠人精神;說的委婉點是好奇(底層是怎么實作的);

說的不自信點是對黑盒的東西我用的沒底,怕用錯;說的簡單直白點是提升自我價值,為了更高的薪資待遇(這里對真正的技術迷說聲抱歉),
原始碼中我們可以學到很多東西,學習別人高效的代碼書寫、學習別人對設計模式的熟練使用、學習別人對整個架構的布局,等等,如果你還能找出其中的不足,那么恭喜你,你要飛升了!
會使用固然重要,但知道為什么這么使用同樣重要,從模仿中學習,從模仿中創新,
讀原始碼不像圍城(外面的人想進來,里面的人想出去),它是外面的人不想進來,里面的人不想出去;當我們跨進城內,你會發現(還是城外好,皮!)城內風光無限,原始碼的海洋任我們遨游!
是怎么樣讀原始碼的
內容了解
首先我們要對我們的目標有所了解,知道她有什么特點,有些什么功能,對對方都還不了解,就想著進入別人的內心世界,那不是臭不要臉嘛,我們要做一個有著流氓心的紳士;對她有個大致的了解了,就可以發起攻勢,一舉拿下,
那么怎么樣了解了,方式有很多,我這里提供幾種,僅供參考
最好的方式就是官方參考指南,親生父母往往對孩子是最了解的,對孩子的描述也是最詳細的;比如SpringBootReferenceGuide就是對springboot最詳細的描述,怎么樣使用springboot、springboot特性等等,通過此指南,springboot在你面前一覽無遺;
但是,springboot畢竟是外國人的孩子,如果英語不好,估計讀起來有點頭疼了,不過我們有google翻譯呀,咬咬牙也是能看的,原始碼世界的丈母娘、老岳丈是非常慷慨的!
其次是書籍,國外優秀的有很多,國內也不乏好書,比較推薦此方式,自成體系,讓我們掌握的知識點不至于太散,這就是好比是原始碼的閨蜜,對原始碼非常了解,重點是挺大方,會盡全力幫助我們了解原始碼,
再次就是博客,雖然可能覺得知識點比較散,但是針對某個知識點卻特別的細,對徹底掌握非常有幫助,園子內就有很多技術大牛,寫的博客自然也是非常棒,非常具有學習價值,
當然還有社區、論壇、github、碼云等等,這就是原始碼的朋友圈,我們從中也能獲取到非常多關于原始碼的資訊,

設計模式的了解
優秀的框架、技術從不乏設計模式;jdk原始碼中就應用了很多設計模式,比如IO流中的配接器模式與裝飾模式、GUI的觀察者模式、集合中的迭代器模式等等;
spring原始碼中也是用到了大量的設計模式,設計模式有什么優點、各適用于什么場景,不是本文的內容,需要我們大家自行去了解,
我們只需要對一些常用的設計模式有個大致了解,再去讀原始碼是比較好的;不需要將23種設計模式都通讀,也不需要將常用設計模式完全理解透;對于全部通讀,我們時間有限,另外有些模式確實不太好理解、用的少,性價比不高,沒必要全部都讀,
常用設計模式:單例模式、工廠模式、配接器模式、裝飾模式、外觀模式、代理模式、迭代器模式、觀察者模式、命令模式
設計模式之于原始碼,就好比逛街購物之于女人,想順利勾搭原始碼,我們需要好好掌握設計模式這個套路,
配合ide進行斷點追蹤
我們通過原始碼的圈子對原始碼的了解終究只是停在表面,終究還是沒有走進她的內心,接下來我就和大家分享下,我是如何走進她的內心的!
那為什么要用斷掉除錯的方式來跟原始碼,而不是直接從源代碼入手去跟我們關注的部分呢?嘗試過的小伙伴應該知道,如果我們對原始碼不熟悉,直接通過原始碼的方式去跟,
一方面很容易迷路(多型,會有很多子類實作),不知道接下來跟哪一個,另一方面也很容易跟丟,當我們跟入的很深的時候,很有可能就忘記上一步跟到哪了,
如果你也想成為程式員,想要快速掌握編程,趕緊關注小編加入學習企鵝圈子吧!
里面有資深專業軟體開發工程師,在線解答你的所有疑惑~編程語言入門“so easy”
資料包含:編程入門、游戲編程、課程設計等,
免費學習書籍:
免費學習資料:
quartz如何操作資料庫
我們通過停止定時任務來跟下quartz對資料庫的操作

明確我們的目的,找到合適的切入點,進入斷點除錯追蹤也就容易了,
任我說的天花亂墜,你仍無動于衷,那也只是我一廂情愿,只有局中人才能體會到其中的奧妙!
總結
只要我們開始去讀原始碼,慢慢的就會形成自己的一套讀原始碼的方式;每個人的方式都不一樣,合適自己的才是最好的,行動起來,用合適的方式去俘獲你的的她吧!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248900.html
標籤:其他
