阅读源码的好方法:断点、堆栈、反向阅读

380 阅读1分钟

理论

信息论上表明,同一种源,用不同表现的信息交叉传递过来,会帮助我们更好的理解源的本质。最近再调试 Spring 的源码,借助了书本,源码,博客。但是他们都是正向阅读的,内容大多数重叠,信息量不算很大。断电、堆栈、方向阅读堆栈,则是一种现有表现,顺着堆栈回溯的阅读过程,最大的好处是与上面的正向阅读不一样,这是一种反向阅读,源码只有一种,书本的正向解释,堆栈的表现都是同一种东西。

小小心得。

不得不说,我们人脑阅读和接受理解的能力是比较差的(信道很窄),正常地阅读源码,就算有博客支持,真正理解到心里的知识是很少的,因为信道只有一个。所以要学习代码,一定要调试。

正向和反向一起交集时,我们会有新的结论,要验证新的结论是否正确,就用新的结论回去解释调试中的现象,这就要求我们在阅读调试过程中,对于不明白的部分一定要提出来。从信息论来说,无论解释是对的还是错的,只要去解释,叠加产生新的信息又会让我们更加接近完全理解源码(作者思想级别)。

例子:IOC 容器中,BeanPostProcesser 的执行过程。

断点

堆栈和反向阅读