不知道如何阅读源码,不是能力不行,而是方法不对

在开源盛行的今天,我们经常可以在各种社区接触到各式各样的源码 。然而对于很多人来说,一看到代码就头大,并不知道源码的作用,不知道如何利用学习这类资源 。
首先 , 我们应该明白我们为什么要学习源码?代码就像是人对着机器说话,一般情况下,源码只会告诉你实现,告诉你细节,而不会告诉你为什么这么实现?这么实现是为了什么?这也是我们读代码经常一头雾水的原因 。
我们应该明确自己的目的 , 如果我们是要了解一个项目的功能,了解他们的思想,了解他们的原理,那么我们应该学习的是文档,学习的是相关的基础知识,而不是看代码 。

不知道如何阅读源码,不是能力不行,而是方法不对

什么情况下我们适合去看源码?我认为有下面几种比较常见的场景 。
  1. 没有文档,没有注释 。(这也许是日常工作中90%遇到的坑爹场景)
  2. 当我们使用某个功能时,得不到对应的预期或者遇到瓶颈,需要仔细阅读代码 。
  3. 当我们自己实现某个功能 , 觉得自己的代码特别搓,或者难以实现的时候,可以选择看别人怎么实现 , 怎么封装 。
更多时候,我们更应该看文档,甚至应该看书 , 才能够把知识点连成线,如果没有一定的基础知识,再华丽的代码也只是if else , 枯燥无谓 。
不知道如何阅读源码,不是能力不行,而是方法不对

那么如何阅读代码呢?我觉得首先应该掌握下面几点:
  1. 了解项目功能,知道这个项目是做什么的 。尝试按照自己的理解,要实现这些功能,大概的软件框架是怎么样,有什么难点 。这样能够在阅读的时候抛出更多问题,与代码进行交流 。
  2. 再把对应的项目跑起来,看看每个功能大概是什么样子 。对项目有大概的认识 。
  3. 阅读相关文章,了解核心思想 。看看有没有前人对该项目的分析,学习项目的主要思路以及一些亮点 。这样子我们在阅读代码的时候才能够有的放矢,在关键核心地方多留一些心思 。
  4. 了解代码的目录结构,知道代码是如何组织的 。
  5. 学习相关的基础知识,如果项目的核心是某种算法、某个数据结构,都应该先了解相关的基础知识,才能够学习到项目的核心 。
  6. 找到核心代码进行阅读 , 一般的项目代码,超过一半都是错误处理、基本的DO、DAO、等对象,这些只要稍加了解即可 。

不知道如何阅读源码,不是能力不行,而是方法不对

【不知道如何阅读源码,不是能力不行,而是方法不对】最后 , 我们应该充分利用一些工具,例如一些IDE , 可以把一些代码调用图画出来 。其次,要多动笔,多画画时序图、流程图、模块组织图 。都是对我们理解代码极好的 。百见不如一试,把程序跑起来,通过debug模式打断点 , 或者增加日志,有助于更好的了解代码 。

相关经验推荐