如何阅读源码?

阅读源码是每个优秀开发工程师的必经之路,那么这篇文章就来讲解下为什么要阅读源码以及如何阅读源码。

首先来说下为什么要读源码,有学习源码的必要吗?

为什么要阅读源码?

关于为什么阅读和学习源码,我个人认为可能有以下几点:

(一)吊打面试官,应对面试

为了找到更好的工作,应对面试,因为在面试中肯定会问到源码级别的问题,比如:为什么 HashMap 是线程不安全的?

如果你没有阅读过源码,面试官可能会对回答的结果不满意,进而导致面试结果不太理想,但如果你对源码有所研究,并能够很好地问答面试官的问题,这可能就是你的加分点,可以形成自己独特的竞争力,吊打面试官,升职加薪不是梦。

(二)解决问题(bug)

在开发过程中,我们或多或少会遇到 bug,比如:在 foreach 循环里进行元素的 remove/add 操作,为啥有可能会报 ConcurrentModificationException 异常?

我们可以先在 Google、Stack Overflow 以及对应项目的 Issues 里看有没有类似问题以及解决办法,如果没有的话,我们只能通过阅读源码的方式去解决了。如果我们对相关源码有所涉猎,就可以快速定位到问题所在。

(三)提升编程能力

读一本好书,就是和许多高尚的人谈话。 -歌德

和阅读一本好书一样,阅读源码就是和编程大牛面对面交流的机会,在许多优秀的开源项目中,它们的编码规范和架构设计都是很棒的,另外在设计上也使用了大量的设计模式,通过阅读和学习源码,能够快速提升我们的编码水平,以及对设计模式有更深的理解。

同时,在我们阅读完一个源码后,可以触类旁通,能够快速地对其他框架的源码进行阅读和学习,减少时间成本。

除了上述提到的原因之外,可能还有许多,在这里就不一一赘述了,那么在确定了要阅读源码之后,就让我们看下如何阅读源码吧!

如何阅读源码?

如何阅读源码取决于你为什么要读源码,比如:

  • 如果为了应对面试,那就可以围绕常考的基础类、集合类、队列、线程、锁等内容进行阅读和学习;
  • 如果是为了解决 bug,那么就可以只围绕出现问题的相关类进行阅读分析,随着解决 bug 的增多,我相信阅读的源码也会越多,从而更容易去阅读和学习源码;

下面大概说下阅读源码的几点建议:

在阅读之前,可以先从开源项目的官网上看它的架构设计和功能文档,了解这个项目的整体架构、模块组成以及各个模块之间的联系

如果没有对应的项目文档,可以根据代码的模块进行梳理,以形成对项目的初步了解,或者,在阅读源码之前,了解项目的架构

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

后端核心技术精讲 文章被收录于专栏

专注分享后端技术干货,包括 Java 基础、Java 并发、JVM、Elasticsearch、Zookeeper、Nginx、微服务、消息队列、源码解析、数据库、设计模式、面经等,助你编程之路少走弯路。

全部评论
最好的关系就是互相成就,大家的点赞、收藏、订阅、留言四连就是我创作的最大动力。
点赞 回复 分享
发布于 2020-07-12 11:50

相关推荐

09-27 00:29
东北大学 Java
伟大的麻辣烫:查看图片
阿里巴巴稳定性 75人发布 投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
4 2 评论
分享
牛客网
牛客企业服务