如何看源码?

动机

了解自己的动机,不同的动机导致的行为的不同,对知识的吸收,思考的深入都有影响。

搜索

看其他人如何看源码,有没有推荐的方式,如从早期的commit开始,仿造一个小型轮子等

大局观

首先需要了解该项目产生的背景,是用来解决什么痛点的,是在什么样的技术环境下产生的,同期有哪些类似的技术,为什么它会脱颖而出。

其次去花时间了解其源码的目录结构、代码执行入口、构建执行方式、产出文件,对基本的IO有了解,做到心中有数。

积极思考

对该项目的核心进行概况,从一句话到能对每个核心进行延伸阐述,自己不断讲给自己听,再去讲给别人听。

平时使用中,使用到该项目的很酷的功能时,先想想没有该工具时自己该如何实现,再去看作者的源码实现。不断地对自己进行追问,针对不同问题去驱动自己针对性学习源码。

抓主干

人的时间是有效的,需要聚焦你的主要目标。就像玩游戏一样,先通关主线。而学习源码,也是需要看解决问题核心流程中的代码,不要被分支、边界处理等等分心,诚然这些也很重要。但当我们再遇到对应场景时回来看或许效果更佳。

参与

现在很多公司招聘都要求参与过开源项目,对开源项目有贡献。

为什么?因为主动参与代表你积极学习的心态,一方面这件事说难不难,说简单不简单,要参与开源项目的共建,需要对该项目有一定程度的认识和一段时间的研究,而大多数人都停留在使用的阶段。而正是你不愿意去做的,觉得费力的,恰恰构成你核心竞争力的一部分。另一方面,优秀的人大都是对原理有深入透彻的了解,看过源码不能保证你成功,但能增加你变得更加优秀的概率。

那么,接下来,我们如何去参与开源项目呢?我总结了以下几个初期容易实施的。

  1. 参与开源项目的文档编写工作,研究源码的实现和文档对应的内容。
  2. 修复当前文档的错误。
  3. 看别人提的issue,尝试回复
    到一定程度,遵循规则和流程,就可以自己提pr了。

学习源码技巧

  1. 调试,这个重要性毋庸置疑,通过添加断点,理清代码执行逻辑。
  2. 画图,自己对流程和逻辑进行画图归纳和总结,自己大脑的栈可以很容易出现stackoverflow,但通过图形,我们能对复杂的逻辑形象化,将诸多流程压缩成一张图。

参考别人的书、资料

切记闭门造车,正所谓一千个人眼中有一千个哈姆雷特,每个人对项目和概念都有他自己独特的理解,他人之石,可以攻玉,将自己的理解与不同优秀人的理解相互印证,在这个过程中,触发脑内神经元的高度活跃,短时间建立很多新的神经连接,所谓的精进,进步就是在这个过程中悄然发生。

你可能感兴趣的:(如何看源码?)