如何阅读源代码

俗话说 听君一席话,胜读十年书。阅读好的源码,正如和智者聊天,受益无穷。

那么如何能更加高效的阅读源代码呢?

首先,可以把源码分成两类:
一类是某些功能性的代码,这类代码往往规模比较小,通读一遍一般不需要耗费太多时间。阅读源码的方法想来也简单,只要保持在特定代码上的专注,多投入点时间,攻克它相信不会有太大难度。
另外一类就是大型项目的源码了。这类源码由于其是由多个功能模块组成的,往往代码量庞大,不太可能在短时间内读完。这时候就需要一些方法来解决阅读源码的问题。

下面谈谈我认为阅读这类源码最有效的几个方法。

首先是读源码的开发文档和api文档。文档其实是作者思路的体现,它使我们能对源码架构和功能能有个比较深刻的了解。通过阅读源码的相关文档,经常会发现之前怎么读都读不明白的地方,突然变得豁然开朗!另外,强烈建议直接读英文文档,而非翻译成中文的“二手资料”。英语是程序员的必备技能,英文看不懂怎么办?那就去学,早学早受益!

其次是debug。在debug之前,要先让代码能在IDE里跑起来。sublime,vim等代码编辑器有其自身的使用场景,但个人认为在debug代码这一块并不适合;专业的IDE在调试代码的同时,能够观察变量的值和堆栈信息,能够分析方法和类之间的关系,有助于我们理清思路。除了打断点,还可以通过打印log的方式调试源码。

再然后是做笔记。为了各个功能模块之间的关系,可以通过画类图,画思维导图等方式,将一个大项目层层拆解成多个相对独立的部分,再将它们逐个击破。画类图推荐使用 plantUML,这是一款通过写脚本的方式生成类图的软件,很适合程序员使用。而思维导图的软件就有很多了,我本人经常使用百度脑图和processon。

最后可以多读源码自带的单元测试代码,单元测试的代码相当于项目的sample,包含着功能点和相关用法。还可以自己写单元测试代码,自己实践一遍有助于加深理解。

源码阅读是个长期积累的过程。刚开始的时候可能感觉很吃力,无从下手。但只要通过持续的投入,再辅以正确的方法,就一定能会有收获,会驾轻就熟。
所以,just do it,now!

你可能感兴趣的:(如何阅读源代码)