如何阅读开源代码

2,991 阅读4分钟
原文链接: blog.vsccw.com
  • 对相关的技术知识有一定的了解

    如何去阅读

    1. 选择正确的版本阅读,

    开源代码经过多年的积累,作者从单一功能开始做起,后来往往包含了太多的功能和使用的小技巧,如果你一开始不是很熟悉的话,你可能第一眼就会很懵逼,而如果你从最初的发行版代码或者你能够看懂的发行版开始阅读,并以此向后版本阅读,你会有种原来造个轮子也不是那么困难。特别推荐这篇文章,我在一开始阅读的过程中也参考了该文章中的方式。 如何以“正确的姿势”阅读开源软件代码

    2. 结合demo,在恰当的时候log一下

    Demo

    每一个开源项目应该都会提供Demo的,里面通常包含一些常见用法,或者一些用法的简单介绍;结合Demo你至少可以再一次认识该项目以及其使用和解决了什么问题。而或许有些demo还跑不起来,这个时候就需要你去用已有知识解决问题,往往在这个解决问题的过程中你会有些额外的发现与认识。

    Log

    Log是你在测试或者调试代码过程中的一些打印标记,而把log和断点结合起来,会让你对代码执行时长和代码执行顺序有个准确的了解。log告诉你什么时候调用,断点可以看到断点处以后接着调用哪些函数,了解了这些调用时机就可以辅助我们理解代码。

    3. 第一次阅读不要太纠结细节

    很多时候你会纠结代码中细微巧妙的实现,然后在纠结过程中耽误了很多时间,这样往往会导致效率低下,而且容易引起阅读疲劳,所以更好的做法就是第一遍阅读大致了解下就可以,能够了解到整体的构架或者框架设计更好,如果能够画出辅助图也更好,没有必要去深究具体的细节。

    4. 在了解了整体架构的情况下看具体实现

    熟能生巧,想要一遍阅读就弄明白整个开源项目,除非你有过人的代码天赋,在上一点的基础之上还要再来一遍,这一遍最好认真些,然后对照自己画过的辅助图去看看具体实现。

    5. 把大模块拆成小模块

    其实大部分开源代码都有一个共同特点,模块化,一个小模块往往只实现一两个功能,所以这样分成小模块看起来更快速理解,也更容易让你清晰认识。而如果你总是以一个整体去看代码,以一个系统的眼光去看的话你往往会混乱你的大脑,结果只是效率低下,很快又忘了。

    6. 在阅读的同时自己动手去写相关的实现

    好记性不如烂笔头,如果仅仅是看懂的话你会很快忘记,而且阅读开源代码也不是一时半刻能够全部弄懂。这个时候就需要你在自己理解的基础上实现它。或者你能够换一种思路来实现,这样更好。

    7. 不要太相信网上别人写的代码解析一类的

    很多别人的代码解析文章,都很不错,不过这些可能都是别人消化过之后的东西,他能够理解多少你我都说不清楚,可能很深,也可能很浅,也可能会有理解偏差,如果你盲目相信而自己不去深究,可能你对该代码也有错误的认识,再加上你从该作者那里吸收消化了又少了一点,所以最后导致你还是似懂非懂,可能别人和别人交流的时候你能够说出来个四四五五,但终究还是理解不深。

    8. 善用搜索

    你在阅读的过程中难免遇到难题,那就直接去搜索吧。Google一下,你所有的难题可能都能够搜索到,实在搜索不到,你还是可以给作者发邮件的。