前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何阅读源码

如何阅读源码

作者头像
用户1410343
发布2022-03-31 20:13:10
5470
发布2022-03-31 20:13:10
举报
文章被收录于专栏:about云about云about云

问题导读 1.阅读源码不同的情况该如何阅读源码? 2.如果为了面试,该如何快速懂得源码? 3.阅读源码的难点在什么地方? 为何要阅读源码?可能原因如下: 1.面试要求 2.提升编码能力 在面试中,我们经常被问到,读过Java、Hadoop或者Spark、Flink源码吗?这时候我们可能就想着,既然要考,那就读读源码吧,可是读着读着就读不下去了,因为花费了很多时间,却读不懂,一无所获。 这里针对我们不同的需求,给我们不同的解决方案。

1.面试要求 如果因为面试,去阅读源码,其实我们可以借助外力,帮助我们,比如通过阅读源码的书籍、视频。 2.提升编码能力 需要下下功夫、花时间 其实很多人阅读困难,刚开始都是比较困难的,所以即使我们提升自己也可以先看看相关的书籍、视频、文档等。然后还有一个通用的技巧,那就是“倒推验证”,怎么个倒推验证,我们一步步来,下面我们详细介绍。 1.面试阅读源码 为了面试阅读源码,如果我们采用传统的,按部就班的去搭建环境,调试等,这样的想法和执行。存在问题如下: 1.时间来不及: 面试是当前就需要,可是阅读源码,没有几个月是搞不定的,所以很可能还没开始,就已经结束了, 2.刚开始遇到较多的问题: 在搭建环境、编译源码的时候,就会遇到各种问题,浪费几天的时间,可能环境都没搞定,最终得出结果,阅读源码太难,不可能达到。 3.准备不足 阅读源码,了解项目背景对源码阅读是非常重要的,比如项目说明文档、版本更替等。如果对这些了解,对于代码的理解也容易很多。 4.知识积累不足 如果我们是刚毕业,只知道变量、类,做过简单的项目,然后就去阅读比如Hadoop源码,肯定是搞不定的,因为这里面可能会涉及到多个设计模式,各式各样的函数、偏函数、匿名函数等使用、类、接口、抽象函数等,以及为了具备更好的移植性、方便修改等,会有各种配置文件、配置项等,还有比如代码的混合使用,Java中使用C、Scala等等,没有深厚的功底,这些会让我们头痛不已。 上面都是我们阅读源码的绊脚石,我们一个个去搬开,会花费相当长的时间,如果只是像单纯的应付面试,我们可以查看相关阅读源码的书籍: 比如 Flink,可以看下《Flink内核原理与实现》

Java,可以查看《通用源码阅读指导书》 Hadoop可以阅读《大数据处理系统:Hadoop源代码情景分析》 想获取上面两本书籍也可以加微信w3aboutyun获取,附上“源码” 2.提升编码能力 阅读源码,对我们的编码能力提升还是比较大,就像我们搞 研究,是需要看一些文献。所以阅读源码多了,我们在代码能力、代码功底就会有很大的提升。 我们在阅读代码前,首先是需要对你所阅读的代码有一个整体的认知,就比如我们阅读Hadoop源码。2008年1月,Hadoop成为Apache顶级项目。到现在2022年,已经发展了14年了,所以我们正确的认识到,我们行业顶级精英,天才级别的大神,写了14年的Hadoop项目,我们想花费多长时间来去读懂、读透。 显然我们想一周、两周、两个月来读懂读透,这是不大可能的,所以这是为什么很多的同学,在阅读源码的时候,还没有开始就已经结束的原因,很多是因为没有正确认知项目的发展和积累。这有点像我们刚会识字或者写作文,就让我们去看四大名著,而且像快速看完,这显然书达不到的。 在我们对源码有了整体的认识后,接着我们就要具体的去研读源码,那么该如何阅读源码,阅读源码的步骤: 1.首先了解项目背景 前面我们已经涉及到,项目背景是非常重要的,比如Hadoop,我们是否对他所了解。Hadoop为何产生,是为了解决在大数据量的情况下,单机很难计算和处理的数据的情况下,所以产生了价格和成本都非常昂贵的超级计算机。所以有的人就想如何通过廉价的普通的计算机来实现计算大数据量,所以Hadoop应运而生。Hadoop又分为Hdfs、Yarn等组件,当然这里面又会细分,我们了解的越详细,对我们阅读源码越方便和快捷。 2.了解项目功能、结构 了解项目功能、结构,比如哪些是通用部分,哪些是功能部分。所以这里我们需要一定猜测,这个猜测我们同样需要去验证。有的大神称其为““正向推导+验证””,这里其实也和我们的学习方法和思维关联。我们在学习比如当前的源码,你的学习思路是什么?是一直跟着文件或者文档的思路去学习,还是自己提前有一定的想法,然后去文档或者文件中去验证自己的想法,这二者的学习效果和速度是不一样的。 3.调试代码 调试代码,很多同学卡在了这里,因为跟踪代码的时候,跳来跳去,就整蒙了。要么不知道为何会跟踪到这里,要么跟踪到这里,不认识它,总之很多同学到这里有的就放弃了。 所以在这里我们该如何破解这个关卡? 1.掌握整个代码的流程走向 2.掌握类之间的主次、依赖关系 3.摸清架构层次,整体把控 4.阅读由易到难 先阅读基础模块,然后阅读依赖较多的模块。我们在刚开始阅读文档,就想去攻克难点,这样会非常容易让我们放弃,所以其实这也是做事的策略和方法。 5.总结 我们在阅读完源码后,去总结从代码深度,到类与类之间的关系,总结出代码的逻辑和实现逻辑。这样达到我们读懂源码的目的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 About云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档