最近入職新公司,在學習產品業務文檔的時候,發現團隊內部沒有業務文檔沉淀;雖說師兄能培訓一些業務知識,但這些都是“面”層面的內容,掌握核心業務,必須了解核心業務知識以及易踩坑點。沒有業務文檔怎么辦呢?那就必須扒項目代碼中業務的實現邏輯了。當然程序員在工作過程中,會遇到很多需要閱讀代碼的場景,比如學習技術框架源碼、review他人的代碼、維護老產品等等。毫無疑問,閱讀代碼是程序員的基本功,這項基本功是否扎實,會在很大程度上影響一個程序員在技術上的成長速度。
啃了將近兩周的項目代碼,本人也總結出來一些快速吃透項目代碼的套路,下面就給大家分享一下我的經驗。
凡事預則立,不預則廢;帶著目的性做事情更容易成功,讀代碼也是一樣。當我們需要閱讀代碼時候,一定要明確自己的目的,無非有以下兩種目的:
明確目的后,必須給自己制定完成這件事情的過程中各個節點應達到的目標。主要是為了check你的學習質量。比如:學習Kafka項目源碼,你的目的是為了在新的項目中更加游刃有余使用Kafka解決業務問題;那么針對你投入的學習時間,可以制定三個階段的學習計劃以及要達成目標;各個目標建議給自己制定一個需要實踐的任務,這樣通過項目檢驗自己的學習質量。
什么是上下文呢?舉個例子:高考,我們參加高考基本上務必需要掌握小學、初中、高中各個年級的基礎知識,這樣我們在考場做題時候就可以將這些知識應用于解題,那么這些基礎知識就是上下文。回到我們源碼學習場景中,上下文可以分為 通用技術、業務基礎。
工欲善其事必先利其器。利用工具可以讓我們事半功倍,我在學習過程中用到的工具如下:
在閱讀源碼的過程中,做筆記是必須的。因為代碼不是自己寫的,很難很快在腦子里刻下印記,經常是看著這里忘了那里,早上覺得弄懂了數據流向,但是中午吃個飯,下午開始干活的時候又忘了原先的鏈路。所以,多記筆記就顯得尤為重要。
下面的一些經驗供大家參考: