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