淺談源碼閱讀

經典的源碼像詩,值得細細品味

1. 明確目的

閱讀書籍和源碼最好帶着本身的問題和目的,這樣能夠避免「看了就忘」的尷尬狀態。後端

讀研期間,爲了掌握嵌入式開發,讀了不少Linux的內核源碼,摸索清楚了一個Linux系統從系統加電到控制檯出現的流程。剛畢業轉Java開發那會,爲了掌握後端開發,讀了不少Spring的源碼,搞清楚了一個請求從到達後端服務器開始,到返回響應的流程、搞清楚了IoC和AOP的工做原理。服務器

最近開始閱讀RocketMQ的源碼,目的有兩個:架構

  1. 學習MQ的通用知識(可靠發送、可靠消費、順序消息、消息優先級等等)、RocketMQ本身的實現,以及不一樣MQ之間的比較。
  2. 學習RocketMQ中對Java併發、Netty等框架的使用

2. 基本流程

源碼閱讀是有必定的套路的。以RocketMQ爲例,分享下個人方法:併發

  • (1)我會先去學會基本的使用;
  • (2)閱讀官網的文檔,瞭解該中間件的總體架構、核心概念;
  • (3)梳理基本功能的實現,例如系統啓動、發送消息、消費消息的過程;
  • (4)關鍵點梳理,例如高可用如何實現?上億的堆積能力如何實現?低延遲如何實現?順序消息如何實現?

另外,若是須要精讀甚至定製開發時,纔有必要搭建一套debug環境。框架

相關文章
相關標籤/搜索