如何阅读一个开源项目
目录
¶了解项目
首先会使用,了解项目的基本功能,以 Spring 举例,想要查看 Spring 的源码,首先需要了解 Spring,通过视频或者文档能够使用 Spring 。这是最基本的步骤,在会使用项目,了解项目的基本功能之后,就可以是进一步的通过博客或者官方文档,了解项目的软件架构,这样可以进一步帮助自己理解软件的基本功能
¶分析代码的依赖体系
通过使用项目后,接下来最简单有效的方法就是:将源代码直接下载到本地,通过 IDEA 进行手动的项目构建。代码在本地构建完成之后,千万不要就立刻开始随便打开一个工程进行阅读,这样是没有头绪,对于代码的功能毫不知情的,很容易让人想要放弃。由于项目已经构建完成,现在可以查看项目中的依赖关系,以 Java 为例子,一个好的框架,总是应该先定义接口,再定义实现,所以这一步,我们需要了解到:这个项目中,有哪些接口,查看代码中对该接口的注释。
🎯 这一步的目的,是先熟悉项目中使用到的类、接口有哪些,对项目中的基本组件混一个眼熟
¶分析过程
万事万物的 Hello World,了解项目中的常见依赖关系后,肯定也不清楚各个组件是干什么用的。随后最好使用 Hello World 进行项目的 DEBUG ,了解项目中完成一个基本功能需要进行的核心堆栈调用有哪些。
🎯 通过核心的堆栈调用可以直接了解到项目中实现某个功能,最直接的调用过程,省去其他细节,减少查看代码的分心过程。
通过这样不断的对项目中,一个功能一个功能的 DEBUG 堆栈调用分析,就会不断加深你对这个项目中实现流程的影响,最好每次查看都配以流程图分析,这样能够加深你对流程的理解。坚持下去,你一定能够了解到项目的核心执行流程步骤,这时候也算是熟练知道项目的执行顺序了
¶分析实现
现在,才是你真正需要查看具体功能实现的过程,你已经了解了某个功能的具体执行流程,相当于项目中每一个步骤在干什么你已经知道了。随后在每一个步骤通过方法堆栈跟进,你就能够查看对应功能,源码中是如何实现的。当然,这一步也是花费众多时间,通过这一过程的学习,代码的逻辑思维等能力将得到很大的提升
¶寻找驱动力
源码学习是枯燥的,对自己的提升并不是非常的明显,所以很容易放弃,那么到底如何才能找到让自己坚持下去查看源码的理由?我通过百度,找到了以下几点😢 其实,还是需要自己的内在驱动力