要想快速並高效地閱讀源碼,一定要有好方法,不然看着會挺費勁,當然,用什麼方法取決於具體的情況。我就把自己總結的方法給大家show一下,互相交流交流:
1、一邊閱讀代碼一邊寫註釋。這是我用過的最好的方法,對代碼理解得更深入,看一些重要代碼或者特別難懂的代碼時挺有用。更何況,註釋也是一種文檔嘛。
2、一邊閱讀代碼一邊繪製UML。這個方法適用於類之間的關係較複雜和調用層次較深的情況,我一般都是先繪製順序圖,然後爲順序圖中的類繪製關係圖。
3、通過Debug來跟蹤程序的主要執行過程,這樣就可以分清主次了,閱讀的時候更有針對性。
4、類的快速閱讀。先弄清楚它在繼承鏈中的位置,看看它的內部狀態,也就是成員變量,一般來說,類的對外接口都是對成員變量的訪問、加工、代理等,然後看看它的對外接口,也就是公有成員函數,識別核心的一個或多個函數,這時候你應該可以大概瞭解這個類的職責或作用了。可能這個類是某個設計模式中的一個組成部分,所以,設計模式的掌握對代碼的快速閱讀也是很有幫助的。
5、帶着問題去閱讀。比如想了解android中的消息機制,那麼看看Looper、Handler、MessegeQueue這幾個類就可以了,其他的不要去看,要不然就跑題了。
下面列幾個閱讀源碼時所處的情景,在特定場景下用哪些方法:
不太熟悉業務邏輯,還不是很清楚它是幹啥的,可以用3、5。
代碼量很大,有幾十萬行,甚至百萬行,可以用2、3、5。
你無法看見程序的運行過程,比如沒有用戶界面,也有可能是無法運行的,可以用3、5。
設計複雜,用了大量的設計模式,調用鏈很深,可以用1、2、3、4、5。
時間有限,沒有那麼多時間讓你看源碼,可以用3、5。