我高效阅读源码的五步速读法

阅读代码是程序员最重要的技能之一,我们每天都在读同事的代码或者第三方库的代码,那怎么高效的阅读代码呢?分享下我的源码阅读方法 。


我的阅读源码的方法分为五步:


第一步,通过文档和测试用例了解代码的功能
阅读源码前要先了解代码的功能,可以通过文档或者测试用例,了解代码做了什么 , 输入和输出是什么 。


了解功能是阅读源码的基?。竺娌呕嵊蟹较蚋?。


第二步,自己思考功能的实现方式
知道了源码有啥功能之后,要先思考下如果自己实现会怎么做 。有个大概的思路就行 。


如果想不通可以看下源码用到了哪些依赖库,这些依赖库都有啥功能,再想下应该怎么实现 。


如果还想不通也没关系,重要的是要先自己思考下实现方式 。


第三步,粗读源码理清实现思路
你已经有了一个大概的实现思路,然后再去读源码 , 看下它是怎么实现的 。和你思路类似的地方很快就可以掠过去,而且印象也很深 , 和你思路不一样的地方,通过读代码搞清楚它的实现思路 。


这一步不用关心细节 , 知道某段代码是干啥的就行,关键是和自己的思路做 diff,理清它的整体实现思路 。


第四步,通过 debugger 理清实现细节
粗读源码理清了实现思路之后,对于一些部分的具体实现可能还不是很清楚,这时候就可以通过 debugger 来断点调试了 。


构造一个能触发该功能的测试用例,在关心的代码处打一个断点,通过 debugger 运行代码 。


这时候你已经知道这部分代码是干啥的了,单步调试也很容易理清每一条语句的功能,这样一条语句一条语句的搞懂之后,你就很容易能把这部分代码的实现细节理清楚 。


这样一部分一部分的通过 debugger 理清细节实现之后,你就对整体代码的思路和细节的实现都有了比较好的掌握 。


第五步,输出文章来讲述源码实现思路
【我高效阅读源码的五步速读法】当你觉得对源码的实现有了比较好的掌握的时候,可以输出一篇文章的方式来讲述源码的整体思路 。


因为可能会有一些部分是你没注意到的 , 而在输出的过程中,会进行更全面的思考,这时候如果发现了一些没有读到的点 , 可以再通过前面几步去阅读源码,直到能清晰易懂的把源码的实现讲清楚 。这样才算真正的把代码读懂了 。


这就是我觉得比较高效的阅读源码的方法 。


总结
我阅读源码的方法分为五步:


通过文档和测试用例了解代码的功能
自己思考功能的实现方式
粗读源码理清实现思路
通过 debugger 理清实现细节
输出文章来讲述源码实现思路
这五步缺一不可:


缺了第一步 , 不了解功能就开始读源码,那读代码会没有方向感
缺了第二步,不经过思考直接读源码,理解代码实现思路的效率会降低
缺了第三步,不理清整体思路就开始 debugger,会容易陷入细节 , 理不清整体的思路
缺了第四步,不 debugger 只大概理下整体思路,这样不能从细节上真正理清楚
缺了第五步 , 不通过输出文章来检验,那是否真的理清了整体思路和实现细节是没底的
当然,这是我个人阅读源码的方法,仅供参考 。

相关经验推荐