今天我想把“如何去阅读源码?”这个话题展开分析一下,其中有些经验很有价值,故此分享给大家。

1、阅读源码的必要性

一个软件开发人员,工作到了一定的年限,一般是3、4年左右,如果还不会主动地去阅读源码,那么他就会遇到职业发展的瓶颈。因为到了这个工作年限,开发者不应该只会做些 CURD 的业务逻辑,更应该会根据公司的实际情况去写模块和框架。没有谁天生就可以独当一面开发出完美的模块或者框架,很多人写框架其实都是从模仿开始的。要模仿的话,那么你首先得看得懂框架源码才行,所以说阅读源码十分重要。

2、警惕阅读源码的误区

阅读源码需要一个前置条件,否则就是本末倒置,错误极大。人性有两大弱点:懒惰,贪多。阅读源码的动机是好的,
但是很多人却犯了贪多求快的毛病,框架都没有搞清楚怎么用,就开始读源码,这样是非常错误的做法。阅读源码要分三步:

第一步:好好的阅读框架的使用文档
第二步:结合文档,系统化、全面化的把框架的用法操练一边
第三步:有时间,有余力,有兴趣的话,再看看其源码的底层实现

当前环境下,某些机构把读源码当做噱头,那是处于商业目的来的,但是并不代表,读源码就是最正确的学习方法,甚至还是一种误导。总之,学习一个新技术还是应该以看文档和学习相关理论为主。等到你想具体深耕某种特定的技术,或者是想借鉴某个功能的具体实现,这个时候去阅读源码,带着明确的目的,往往效果更好。

3、区分阅读方法和阅读行为

最近,我的一个徒弟,给我分享了他的源码阅读收获,他认为阅读源码的方法应该是这样的:

1、先把源码项目跑起来;
2、带着问题去看,比如:看启动顺序、接收请求顺序或某个知识点
3、如果觉得太迷茫,可以先看看相关的视频、书;
4、先从大的方面入手:架构图、类图、流程,不要一下子就扎入到项目细节中去;
5、看架构图,工作了比较多年,画架构图有利于成长;
6、如果看到某部分,感觉基础知识不扎实,可以顺便梳理一下基础知识;

其实,在我看来,这不叫阅读方法,仅仅是阅读行为,人的自然行为而已。当人面对不同的状态时候,采用的某种行为而已。例如上述所说,“感觉迷茫就应该先看视频或书”、“看架构图、画架构图”,这些压根就不是方法,而是人的自然行为。

说了这么多,大家估计感到了迷惑,那什么是阅读方法呢?应该是下面这样。第一:要有明确的操作步骤;第二:要有工具来实现步骤。分享一个我的个人经验,这个经验我使用了很多年,收获很大,所以值得拿出来分享给大家。阅读代码,我一般情况下分为三步:

第一步:整体的浏览代码。浏览一下即可,所以花费的时间不多,走马观花地看看就行。
第二步:统计代码中单词的数量。可以编写一个小工具,对代码进行清理和切分,这样能统计出单词的数量。
第三步:根据重点单词去阅读代码,从而做到有的放矢。知道重点在哪里,不容易淹没在代码海洋中从而迷失方向。

4、扔掉幻想,牢记:性格决定命运

其实,阅读源码对人的提升没有那么大。当然,阅读源码肯定也是必不可少的环节。经过我多年的亲身实践和仔细观察,我发现:成功不在于某些技巧的采用,而在于人的性格和心态。以阅读源码来说,所有的读码技巧都不值得一提,真正决定收获大小的是时间因素(坚持和恒心)。摁住一个框架看上几年,这样的收获才是最大的。

我们阅读源码的目的是什么呢?为了学习点编码的招式吗?如果是抱着这个目的,那么采取技巧无可厚非。但是,如果想通过阅读源码提升自己的编码内功,那就以“年”做单位来阅读源码吧。虽然一年的时间看起来很长,但是大家都在加班,真正留给自学的时间并不多。

标签: none

添加新评论