【Spring源碼這樣讀】-怎麼閱讀源碼

做開發要不要讀源碼?如果你天天996,真心的不建議你去讀源碼(我是不介意做一個勸退師的)。讀源碼確確實實是一個費時費力的活,如果你每天都很忙,偶爾看一眼,想了解其中的奧祕,這很難辦到。那我們需不需要讀源碼?讀源碼能給我們帶來什麼,本文會一一闡述,看完之後,你在考慮要不要去讀!

在這裏插入圖片描述

寫在前面

在考慮怎麼讀之前,我們不妨先來看看別人是怎麼看待讀源碼這件事的。

  • 問:讀源碼有用嗎?現在很多的東西都是開箱即用,既然有輪子,難道我還需要把源碼讀一遍再去創造一個輪子嗎?

答:有用!如果你天天996,偶爾看幾分鐘,你讀源碼只會給你帶來痛苦,不能持續的、有結果的去看真的沒啥用。如果你對框架的基本應用都不熟悉,也不建議你去讀,這樣無異於給自己增加了一些無趣的知識(即使裏面有很多的邏輯,你都用不到,學來真的只能鍛鍊一下思路)。當然還有太多無用的理由,但是如果你是一直在用的,讀源碼,最起碼的作用在於你的設計能力和對代碼的優化能力上,這些更多的是增強了你的軟編碼能力。如果要說的直觀一點,源碼都寫得很優秀,進過多次優化,你看的多了也能學習到這些優秀的編碼方式。其次就是如果出現了很多框架的坑,你能夠有了很好的思路去解決,知道問題是哪裏來的。最後可能是沒那麼明顯的,你要去做東西的時候,你設計思路會有很好的提高

  • 問:我英文不好可以讀源碼嗎?

答:可以!英文不好並不能阻礙讀源碼,畢竟翻譯軟件多的是,可能翻譯的會有些出入,但是配合看代碼也是八九不離十的。畢竟有一定的功底,是能夠有效的糾正一些可能出現的錯誤的。

  • 問:什麼人需要讀源碼?

答:這個問題像我需不需要讀書一樣,按正常套路,我應該勸你積極。不過還是來點實際的。提升能力的方式有很多種,並不是每個人都需要從零去走到一的。就好比你都有很好的體系知識了,或者有了很牛逼的老師。別人給你理好了,避免了你從零開始。那就沒有必要去走遠路了。如果你像去從事架構之類的工作,如果你想去解決相關的一些框架的bug,你們應用裏面出現了這樣那樣的問題,這種都是急需要去學習一下的。在你沒有很好的資源支持,你又想着有很好的提升,這一類人也是可以去讀的,畢竟源碼就是優秀導師。

在這裏插入圖片描述

爲什麼要讀源碼?

看完這些問答,是不是大概有了些答案?總結一下吧

  • 提升設計能力和解決問題的能力
  • 升值加薪的一種途徑
  • 提升編碼能力
  • 讓你具備使用輪子同時有創造輪子的能力
  • 更好的掌握框架

源碼怎麼讀?

  • 首先需要有份源碼

有些人爲了偷懶,或者利用碎片時間直接斷點項目裏面的依賴,這是一個極其不對的做法,給你帶來的真的只有浪費時間。(源碼的下載,安裝後面會專門來出文章)

  • 不建議跟着斷點去讀

跟着斷點一步一步走真的能看好代碼嗎?看代碼真的不是這樣看的。有很多朋友在初讀源碼的時候,喜歡跟着斷點一步都不放過的去閱讀。這種方式不太推薦。說點實際的吧,源碼有多少行?多少個方法?爲了一個功能點,一步一步的走斷點,檢查代碼。這樣我們能收穫什麼?只會越看越暈。方法那麼多,代碼那麼多。當你跟上5個方法,你基本就已經暈了。

  • 學會做圖

不妨去做一些腦圖,來輔助自己很好的去閱讀源碼。作圖是一個高級的必修課,做一些圖最起碼沒有那麼容易暈。要是你閱讀源碼是已經有方法有步驟的,腦圖會對解析流程起到很大的幫助。

  • 用疑問的方式來閱讀

這條有個前提。我們最大的問題不是需要疑問,而是在不瞭解的情況下你根本提不出問題或者提不出有效的問題。所以帶着疑問去閱讀一定要先去看看框架的基本流程和功能,從流程和功能上去入手會效率高很多。

在這裏插入圖片描述

  • 去熟練使用框架和熟悉框架的功能點

這一點可以和上一點配合使用。在使用的時候去考慮,爲什麼要這麼用,反過來提問,作者爲什麼要設計這種規則,讓用戶這麼來使用。也可以去反思作者是從什麼點出發的來設計這種功能,然後爲什麼選擇這種方式來實現。

  • 僞代碼去實現自己的想法

僅僅只是看看,那最終也就真的只是看看了。也許培養了閱讀能力,但是並沒有太多實質的突破。可以考慮看完之後,自己去按照自己的理解去實現以下。這個時候就可以反向應正自己的理解是不是對的。如果寫出來了最起碼證明理解沒啥問題,同時還能做一件事,那就是可以那自己的實現和源碼比對,到底是你寫得優秀還是他寫得優秀,優秀在哪裏,學習他的優秀實現方式。

  • 知識點覆盤

學完一部分之後,我們要去覆盤一下,當然這個覆盤並不是說去複習,而是那我們學習到的這一部分功能點對源碼的理解,在實際應用中去找對應的功能,然後去看看能給我們帶來什麼幫助。

推薦跟着一些書去讀

  • 《Spring源碼深度解析》
  • 《spring揭祕》
  • 《SPRING技術內幕》

在這裏插入圖片描述

最後一個問題:怎麼堅持?

放棄閱讀源碼的原因,基本就這幾個

  • 費時費力
  • 太過複雜
  • 沒有時間
  • 看不到明顯結果
  • 對部分功能很迷茫

放棄是很正常的事情,漲薪作爲動力也是不靠譜的,就當是鍛鍊一下技術吧,看知識點,有體系的去閱讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章