如何阅读源码
首先,要站在超越阅读源码的角度才能够读懂源码; 然后,要明白读源码的几个阶段,首先是要使用明白,在应用层面搞懂这个源码是做什么用的,要能够run起来; 接着是调试阶段,最好是能够Debug,这一点是从《阅读struts源码》中找到灵感,否则因为if分支或者其他原因,很可能陷入误解之中; 在阅读的过程中始终把握两点: 一个是生命周期,一个是职责,一个是关系 ,生命周期首先是大的生命周期,都有哪些核心对象,交互流程怎样,每个阶段都做什么事情;然后是每个类的生命周期,以及职责,职责就是这个类到底是做什么的,比如FDT里面的ControlChannel就是做FDTReaderSession的控制指令传输通道以及对端控制指令的接收器,附带创建之初交换本端的配置信息,如此一来,这个类算是读懂了;最后一个是关系,两个层面,都是核心类都和那些类交互,比例怎么样1:1,还是1:*; 这里强调一点: 就是生命周期可能是多个流程 ,比如在struts里面init是一套流程(生命周期),处理http请求是另外一套;你看到多套流程之后才能够形成清晰而全面的代码业务流 阅读源码第一轮要学会跳着看,源码第一轮要掌握核心类流程以及设计思想,细节地方可以跳过;但是该搞明白的一定要搞明白;跳着看就是把细节,不影响掌握大局的部分先跳过去不管;所谓抓大放小。 读源码要有目的性