源碼研究方法心得

最近在看源碼時候,有些心得,整理下。算法

1 先把源碼下載下來,本身構建,必須執行單元測試,看單元測試成功率以及消耗時間。從這裏能夠看出項目的測試質量。數據結構


2 先把源碼結構以及構建腳本,readme等基本的結構看完,瞭解構建和使用過程。這步重在看工程結構和使用基本文檔。數據結構和算法


3 經過JavaDoc把全部的包看完,瞭解每一個包的做用,包的數量看出源碼複雜度和做者的結構規劃,同時也能夠看到文檔的質量。找到最核心的幾個包,裏面的類所有看完,大概瞭解作什麼,核心的類在包中通常有標註,核心的類表明着項目的靈魂。看能不能抽取些領域的概念,用哪些類(概念)支持了這個項目。從而猜想哪些概念支持了這個項目運行和解決領域問題的基礎。ide


4 嘗試第三步抽取的類畫出類圖,也就是項目的靜態結構。這一步通常耗時間而且帶了不少猜想性的探索,嘗試理解大概輪廓。項目同時使用了哪些數據結構和算法?工具


5 寫一個使用demo,debug進去看核心流程,這一步最費時間,由於須要理解大量細節和流程,debug過程當中看到經歷的多少個類,理解項目動態的運行。重在瞭解設計思路。源碼分析


6 看網上解析和已有源碼分析文章,和本身理解同樣嗎,或者新的理解。這個階段能夠重點分析代碼質量,好比抽象度,擴展度,設計細節,DesigniteJava之類工具分析OO Metris等數據。單元測試


7 理解項目爲了解決一個問題,創造了哪些概念和過程。給項目提出五個優勢和五個缺點,從源碼,設計,設計,實現,工程,競品等角度。測試


上面7步只是瞭解項目的基礎,更深刻的須要深刻看源碼,理解源碼。更重要的理解項目抽象了哪些東西,項目靈魂,項目設計思路,項目的核心概念。debug

相關文章
相關標籤/搜索