How Tomcat works — 一、怎樣閱讀源碼


在編程的道路上,通過閱讀優秀的代碼來提升自己是很好的辦法。一直想閱讀一些開源項目,可是沒有合適的機會開始。最近做項目的時候用到了shiro,需要做集群的session共享,經過查找發現tomcat的session本身就支持,發現自己對於使用了這么久的東西還是不甚了解,所以就乘此機會來學習學習。
閱讀源碼已經兩周了,之所以沒有邊讀邊總結是覺得一開始難以總攬全局,可能會以偏概全,所以在對整體上有所把握之后,來記錄一下自己的所學.

方法

其實這些方法是閱讀之前就有個雛形,然后參考了別人閱讀源碼的方式(其實在做一件事之前搞清楚方法總是事半功倍的),再加上自己實踐中的心得總結出來的。

  1. 准備源碼,IDE,寫一個最簡單的例子,使程序正常運行
  2. 最好准備一些問題,讀源碼的基礎一定是自己使用已經很多了,在使用過程中積累的一些問題可以總結記錄下來,在讀源碼的時候一一解決。
  3. 第一步不要在意細節,先理清主干。把程序運行起來,逐步調試,畫出程序運行的時序圖。注意:
    • 不要每一個函數都逐步調試進入,對於不重要的先畫在時序圖里面,簡單記錄(猜測)功能
    • 遇到新的線程先不去仔細查看,先記錄,繼續
  4. 經過上面已經明白了整體脈絡,接下來就查看自己上面遺留了那些問題,針對每一個問題(分支)再仔細閱讀
  5. 根據第二步理出來的問題逐一解答,再次有針對性的閱讀
  6. 這個時候對於源碼已經了解比較深入了,可以考慮學習一些設計模式,關鍵數據結構,關鍵算法,優秀的思想,一些關鍵類,關鍵方法

工具

不同語言、不同目的閱讀源碼的方法、工具也不盡相同,對於java我是用了以下工具,特別是斷點調試,對於跟蹤程序執行順序有很大幫助,還有UML工具astah——通過繪制時序圖等很容易理清源碼思路。還有就是有問題或者想法要及時記錄,顯然haroopad是一款不錯的markdown工具。

  • IDE為eclipse
  • 使用astah繪制時序圖
  • haroopad記錄markdown筆記

本次閱讀

我閱讀的tomcat源碼版本是7.0.69,參考的是《深入剖析tomcat》,書中tomcat的版本是4、5,已經比較老了,有些東西已經變了,不過並不影響對於某些原理的理解和整體的把握。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM