上一篇,我們通過demo,構建了黑盒模型,大致瞭解了專案與demo的關係,以及一個初步流程。
本篇是《如何高效閱讀原始碼》專題的第五篇,通過閱讀文件,來了解專案的概念模型,以及驗證和完善黑盒模型。
本節內容如下:
-
為什麼要閱讀文件
-
到哪裡去閱讀文件
-
如何閱讀文件
-
如何構建概念模型
-
通過概念模型驗證與完善黑盒模型
為什麼要閱讀文件?
Linus大神說過這麼一句話:「Talk is cheap,show me the code」!廣大程式設計師都奉為聖經!只是可惜,絕大部分程式設計師都達不到Linus大神的水平。
對於一個程式碼量巨大的專案而言,不論它設計得多麼的精妙,如果沒有文件的話,一般人很難通過閱讀程式碼來理解專案邏輯。而一個清晰明瞭的文件,對理解專案來說有很大的幫助。
到哪裡去閱讀文件
我想沒有誰能比專案的開發者更瞭解自己的專案了!所以,最好的文件就是官方文件。強烈建議直接閱讀原文,因為翻譯的文章,多多少少都帶有個人理解,可能理解的是對的,也可能理解的是錯的。翻譯的文章可以作為參考,以鑑別自己是否理解錯誤。
除了官方網站,也可以通過谷歌搜尋一些比較好的技術論壇或部落格,來閱讀對應的部落格或帖子。官方文件一般都是比較完整的講述專案,而部落格或帖子可能會從一個點來詳細的描述這個專案,對一開始還不是很瞭解專案的人來說,可能更容易理解一些。
在理解了這些點之後,還是要閱讀官方的文件,來將這些點給串起來,這樣才能對這個專案有一個完整的理解。
如何閱讀文件
文件的閱讀不可一蹴而就,就以Spring的文件來說,Spring下的子專案有很多,每個子專案都有文件,少的也有大幾十頁,多的甚至上千頁,要一頁一頁的看完,是完全不可能的。那我們該如何去讀呢?
我們要有目的的去讀文件。我們理解專案的階段不同,目的也就不同。例如,我們現在需要對專案有一個大致的瞭解,需要能構建專案的概念模型。那我們就要去找描述專案概念的相關文件。
以JUnit為例子,它的官方網址是:https://junit.org/junit4/。我們需要找到網站裡描述相關概念的文件。我們會發現,首頁就有對應的條目:
通過閱讀上面列表的文章,我們能大概瞭解到JUnit中有哪些概念:
-
Assertions:斷言,用於判斷測試結果是否符合預期
-
TestRunners:測試執行,各種執行測試的方式。包括下面的引數化測試、理論測試,以及執行JUnit3的相關類等
-
Suite:套件,批量執行測試的類
-
Rules:規則,擴充套件JUnit的功能,靈活地改變測試方法的行為
構建概念模型
從上面的幾個概念,再結合我們之前的理解,我們就可以得到一個大致的概念模型:
-
各個Test是測試用例
-
TestRunners用來執行各種測試
-
Assertions用於驗證測試結果是否符合預期
-
Suite用於批量執行測試
-
Rules用於改變測試的行為
通過概念模型驗證與完善黑盒模型
通過上面的概念模型,結合前面的黑盒模型,我們可以完善黑盒模型:
-
我們既可以編寫測試用例Test,也可以編寫測試套件Suite
-
測試套件Suite可以新增多個測試用例Test
-
通過TestRunners來執行測試
-
通過Assertions來驗證測試結果是否符合預期
-
通過Rules來改變測試的行為
-
最終通過Result展示結果
總結
本文通過對文件的理解,梳理出概念模型。並通過概念模型來完善黑盒模型。實際上,隨著我們對專案的理解,黑盒模型會慢慢的變成白盒模型。
有了對專案的概念模型後,下面我們可以真正的來閱讀專案原始碼了。