目录

  1. 了解项目
  2. 分析代码的依赖体系
  3. 分析过程
  4. 分析实现
  5. 寻找驱动力

了解项目

首先会使用,了解项目的基本功能,以 Spring 举例,想要查看 Spring 的源码,首先需要了解 Spring,通过视频或者文档能够使用 Spring 。这是最基本的步骤,在会使用项目,了解项目的基本功能之后,就可以是进一步的通过博客或者官方文档,了解项目的软件架构,这样可以进一步帮助自己理解软件的基本功能

分析代码的依赖体系

通过使用项目后,接下来最简单有效的方法就是:将源代码直接下载到本地,通过 IDEA 进行手动的项目构建。代码在本地构建完成之后,千万不要就立刻开始随便打开一个工程进行阅读,这样是没有头绪,对于代码的功能毫不知情的,很容易让人想要放弃。由于项目已经构建完成,现在可以查看项目中的依赖关系,以 Java 为例子,一个好的框架,总是应该先定义接口,再定义实现,所以这一步,我们需要了解到:这个项目中,有哪些接口,查看代码中对该接口的注释。

🎯 这一步的目的,是先熟悉项目中使用到的类、接口有哪些,对项目中的基本组件混一个眼熟

这一步非常重要,不要一开始就直接看代码的实现细节,最好看看接口实现,常用组件的继承关系,如果直接看代码,非常容易不知所云,最终望而却步

分析过程

万事万物的 Hello World,了解项目中的常见依赖关系后,肯定也不清楚各个组件是干什么用的。随后最好使用 Hello World 进行项目的 DEBUG ,了解项目中完成一个基本功能需要进行的核心堆栈调用有哪些。

🎯 通过核心的堆栈调用可以直接了解到项目中实现某个功能,最直接的调用过程,省去其他细节,减少查看代码的分心过程。

通过这样不断的对项目中,一个功能一个功能的 DEBUG 堆栈调用分析,就会不断加深你对这个项目中实现流程的影响,最好每次查看都配以流程图分析,这样能够加深你对流程的理解。坚持下去,你一定能够了解到项目的核心执行流程步骤,这时候也算是熟练知道项目的执行顺序了

分析实现

现在,才是你真正需要查看具体功能实现的过程,你已经了解了某个功能的具体执行流程,相当于项目中每一个步骤在干什么你已经知道了。随后在每一个步骤通过方法堆栈跟进,你就能够查看对应功能,源码中是如何实现的。当然,这一步也是花费众多时间,通过这一过程的学习,代码的逻辑思维等能力将得到很大的提升

🎯 通过这一过程的不断深入,源码中的具体实现细节一定会被你了解透彻的,剩下的问题就是:如何坚持下去?

寻找驱动力

源码学习是枯燥的,对自己的提升并不是非常的明显,所以很容易放弃,那么到底如何才能找到让自己坚持下去查看源码的理由?我通过百度,找到了以下几点😢 其实,还是需要自己的内在驱动力

  • 在工作中或实践中使用开源项目,通过不断的使用,能够让你不断的熟练,越熟练越自信;
  • 网上搜索针对该开源项目进行分析的优秀文章,查看别人的知识,通过弥补自己的不足,寻找志同道合之人,旅途不再孤单;
  • 对开源项目提出自己的疑问,寻找良师答疑解惑,能够更快加深自己的认识;

以上都是我最近阅读源码时总结出来的结论,希望可以帮助大家,后续我会不断改进的