源码阅读

学习如何阅读源码


最近在学习Spring框架,想去找一些好一点的书籍,但找来找去,都没有遇到合适的,答案反倒指向了阅读源码这条路,我这才意识到自己似乎跨进了新的阶段,通过阅读源码来进行学习,才会更加直接和深刻,但如何阅读几十万行的源码也是一门技术,因此在在这里记录一些自己的小技巧

首先需要告诉自己阅读源码到底是为了什么?千万不要为了看源码而看源码,要有着手点,知道自己这次看源码的目的是什么,要以任务驱动,不要陷入源码的海洋中。看源码最重要的是求知欲,由求知欲产生的是各种各样的问题,带着这些问题去看源码,才是最有效果的

对我来说我选择阅读源码的第一驱动力就是好奇,我在另一篇文章中也提起过,我在学习计算机的很长一段时间中脑子都会不自觉地想要理清代码是如何转换到0和1的,思考问题的习惯永远都是往下走,而软件工程要传递的思想却是往上走,也就是封装。这种思维惯性就会不自觉的领着自己往底层去探究,也就一步步领着自己走向了阅读源码的道路。其次的原因就很现实为了面试,提升自我价值,为了更高的薪资待遇。但自己从来没有觉得阅读源码是为了提高逼格

源码中我们可以学到很多东西,学习别人高效的代码书写、学习别人对设计模式的熟练使用、学习别人对整个架构的布局,等等。但切记阅读源码也要带着批判思维,没有任何一份源码是完美的,总能找出其中的不足。会使用固然重要,但知道为什么这么使用同样重要。从模仿中学习,从模仿中创新。

如果说框架或者项目是自己的女朋友,那了解女朋友的第一途径就是和女朋友亲自打交道,深入了解源码,不断使用这个框架,不断和女友在一起打磨,但女孩子总是让人猜不透,因此我们也需要通过其他方式来了解

最直接的方式就是官方参考文档,亲生父母往往对孩子是最了解的,对孩子的描述也是最详细的;比如Spring Boot Reference Guide就是对springboot最详细的描述,怎么样使用springboot、springboot特性等等,通过此指南,springboot在你面前一览无遗;但是,springboot毕竟是外国人的孩子,如果英语不好,估计读起来有点头疼了,不过我们有google翻译呀,咬咬牙也是能看的。源码世界的丈母娘、老岳丈是非常慷慨的!

其次是书籍,国外优秀的有很多,国内也不乏好书,比较推荐此方式,自成体系,让我们掌握的知识点不至于太散。这就是好比是源码的闺蜜,对源码非常了解,重点是挺大方,会尽全力帮助我们了解源码

再次就是博客,虽然可能觉得知识点比较散,但是针对某个知识点却特别的细,对彻底掌握非常有帮助,园子内就有很多技术大牛,写的博客自然也是非常棒,非常具有学习价值。当然还有社区、论坛、github、码云等等。这就是源码的朋友圈,我们从中也能获取到非常多关于源码的信息

上面四种方式其实也对应了我们学习一项技术的不同方式,最简单直观的就是逛社区,这能让我们先从表面去了解一个人,从书籍之后层层往上,让我们一步步接近最真实的面目,这就是学习的不同阶段和境界吧