序言:目前看一看源码,来提升自己的技术实力。同时现在好多面试官都喜欢问源码,问你是否读过 JDK 源码等等?
针对如何阅读源码,也请教了我的老师。下面就先来看看老师的回答,也许会有帮助呢。
我很尊敬的一位老师,他姓唐,算是我入门编程的启蒙老师,有 10 多年的 C /C++ 开发经验,我有幸跟着老师的 C ++/ C 课程,自学完,而且还学了数据结构。他的讲课很有风格,幽默风趣,有条有理,深入浅出。
不过后来,我决定走 Java 这条不归路。
我向老师请教了一个问题: 关于如何阅读源码的问题?不乏味,思路清晰。就像他的课程一样,基本上很少会有疲倦,枯燥的感觉。
唐老师,回答道:读源码是要建立在你的基础经验足够的情况下。否则很容易看不懂
我继续又问: 那对于刚刚想尝试去读源码的同学来说,有没有一些建议呢?我尝试着读了一些,但感觉很无厘头。
唐老师,回答道: 读源码是要读和你水平相匹配的。好多人好高骛远,简单的,能读懂的不屑,想读的,又读不懂,高不成低不就。我的建议是从教学型项目读起。
小插曲:有位朋友说,源码写的就一定比我写的好吗?哈哈,这回答倒也是刷新我的认知。
另外一位朋友有举例说:如果读 redis 源码,我会先看一本讲 Redis 原理的书,然后再看源码。
以上就是我这次请教的过程,总结一下:先懂原理,知道一个全局框架,再结合教学型项目或自己写些小案例,再深入源码。
知识在于积累,学习需要耐力。学习就像挖金矿,或许一开始毫无头绪,但转个角度、换换工具,时间久了总会找到一个缝隙。成功就是你比别人多走了一段路,或许恰恰是那么一小步。
有人抱怨:阅读源码太枯燥、乏味了,看到源码就头晕,无法学下去了。你肯定选择了一条充满荆棘的路。选对方法,你会发现这里是一条充满鸟语花香和欢声笑语的幽径。
我也整理了最近学习源码的一个大致方法,至少这是我实践的一套方法,大家也可以慢慢整理出适合自己的一套方法。
01. 多角度,对比学习。
除了自己去阅读源码之外,比如学习某个类的时候,可以专门结合一些优质的博客针对性的对比学习,并查漏补缺。
02. 制定源码学习计划。
大多数人其实对源码的整体框架没有太多了解,只知道我要学习源码,但却无从下手。那么,制定一个可行性的源码学习计划,对你后面的学习源码会有一个指导性的作用。我在找源码的阅读方法时,偶遇一篇 讲 JDK 阅读源码顺序,给了我一个学习源码的方向,也正是我需要的。我后面也会专门分享出来的。
03. 多调试,跟踪源码。
源码阅读,我可以说必须要 debug。如果你的大脑够强大,自带编译运行,不需要 idea 辅助。如果没有,那还是老老实实地把源码导入,自己 debug,看一下运行时,代码的逻辑走向是怎么样的。
04. 多交流,请教高人。
交流可以验证和加固自己的知识。只有好处,没有坏处。对于不会的,理解不透彻,也可以向大 lao 请教,但前提得先自己 Google 解决一下。
05. 多记录,分享。
我偶尔会有一种错觉,我在学习某项东西的时候,看着一些写得好的博客,这暂且叫碎片化学习,看了也就过了,隔三差五就忘了,又继续回到我的增删改查。然后自己写的时候,写不出那种效果,总担心重复别人的轮子。
只要不是全部复制 + 粘贴,加上自己的体会和感觉,再写出来的,那就是你的,独一无二的一份笔记和心得。
我的分享暂且就到这里吧。
如若有好的学习方法,可以留言一起交流学习。
原创不易,转载请注明作者和原文链接。
喜欢的朋友们,可以微信关注或点个喜欢。