http://blog.163.com/liuxulin@126/blog/static/51097394200881910274124/
我们如何才能够快速理解和读懂其他人写下的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.如果想验证自己是否真的读懂对方代码,可以尝试一下重构对方的代码,改进对方的代码.如果你能够做到这一点的话,代表你已经真正的完全读懂了代码.