现在工作中,不管别人的代码,还是一些框架的源码,都需要大量的阅读代码,但是由于java语言的特别,读着读着,就很容易出现下面的问题1)陷入局部的细节代码之中2)看着后面的代码,忘记了前面的代码是干什么用的,最后就陷入了代码泥潭之中3)对一些java语法规则(例如一些语法规则、设计模式,就会心灰意冷,没有心情读下去代码,不要陷入局部细节)不是很了解,陷入了解java局部语法规则泥潭中,对于如何阅读代码,有以下心得

1)做好备份,因为你之后要修改

2)从main函数开始阅读

3)分层次阅读,java代码就像二叉树,阅读方法最好用广度优先遍历算法。在程序主体一般会比较简 单,调用的函数会比较少,根据函数的名字以及层次关系一般可以确定每一个函数的大致用途,将你的理解作为注解写在这些函数的边上。当然很难一次就将全部注 解都写正确,有时候甚至可能是你猜测的结果,不过没有关系这些注解在阅读过程是不断修正的,直到你全部理解了代码为止。分层阅读的好处就是避免一下子陷入细节之中,系统的理解保持在一个正确的方向上。不要去阅读java语言自带的函数。

4)写注解,作用:1)你读过的方法以及它的功能,很长时间在读,不写注释就忘记了,导致重复阅读 2)第一次读的时候,可能理解是错的,错也写注释标记一下,这样就知道之前哪里读错了。一般写注解的方法有:1)你很难一下子就确定所有的函数的功能,不妨采用采用猜测的方法去写注解,根 据函数的名字、位置写一个大致的注解,当然一般会有错误,但你的注解实际是不断调整的,直到最后你理解了全部代码。2)按功能去写,但是不要写 fopen,打开一个文件这种傻瓜注释3)系统的主要代码要写清楚注释4)比较难理解的地方要有注释,这样可能包含一些编程技巧(设计模式),以后要学习的点。

5)代码debug调试,看中间运行变量是什么,对以后的修改帮助还很有帮助

6)重复阅读,一次就能把源码看懂的人牛人还没见过


 

自己心得:最近读多了JDK源代码,认为读JDK源码,要先从顶层接口、抽象类或者类进行阅读,首先阅读每个类的类注释,然后再了解类之间关系(依赖倒置原则)。