1. 程式人生 > >如何閱讀其他人寫的java程式碼

如何閱讀其他人寫的java程式碼

我們如何才能夠快速理解和讀懂其他人寫下的Java程式碼?現在Java開源軟體如此之多,我們更多的是在學習其他人寫的程式碼,自己寫程式碼的時間已經很少了,其實大多數人多在copy,paste其他人寫的程式碼.那麼如何快速的去讀懂對方的Java程式碼呢,瞭解對方思想.我認為應該有這幾方面的技巧和知識:
1.在讀對方程式碼的同時,自己為對方寫TestCase,這是檢驗是否正確理解對方程式碼含義的一個非常有效的方法.
  大家可以參考Apache Ant的testcase就寫的不錯,也很多,這些testcase可以幫助你對Ant的各種Tag功能的瞭解進一步加深.

2.在一段程式快要結束的時候,可以是一個複雜的真實的場景,也可以是一個模擬的簡單的場景,也可以在TestCase中,加上這麼一句程式碼:
  Thread.dumpStack(); ////Prints a stack trace of the current thread. This method is used only for debugging.
這句程式碼不會影響到程式的執行,但是他將當前程式的執行情況打印出來,方便你隨時瞭解當前程式執行的流程.
根據這個StackTrace,你基本上可以畫出UML Sequence圖,或者UML activity圖.

3.最好學習一下UML各種圖的製作,有利於加強對程式碼的理解.在讀程式碼的過程中,將體會寫入到UML 各種圖中去.可以用如下軟體幫忙繪製UML圖:  Together,Visio,Rational.

4. 多讀讀各種模式,瞭解他的內涵.在今天設計模式大行天下的情況下,如果你不懂23GoF設計模式,那麼你在看高手寫的程式碼時,只會暈,因為往往他們寫的實際程式碼很複雜,其中可能包含幾種設計模式,單純用上某一種設計模式的情況還是少的.如果你深刻理解了23GoF設計模式,那麼他們的程式碼對你而言就不再是障礙了.  如果你想對J2EE系統架構進行了解的話,那麼建議你看看SUN公司的J2EE核心模式.  因為這些模式東西現在已經得到廣泛的應用,所以瞭解他們是很有必要的.
   關於設計模式23GoF的成功應用,大家可以看看Eclipse程式碼和Sun的JDK實現.
   有一種eclipse 外掛可以幫助大家生成 16 種 gof 設計模式,這是它的官方網站:http://www.patternbox.com/index.html

5.如果想驗證自己是否真的讀懂對方程式碼,可以嘗試一下重構對方的程式碼,改進對方的程式碼.如果你能夠做到這一點的話,代表你已經真正的完全讀懂了程式碼.