几次想阅读源码,但是每回都坚持不下去,毕竟读源码真的是一件很难得事情 。随便一份源码 , 动辄几百个类,每个类几百行,没点毅力真的坚持不下来 。当然,也有阅读方法的缘故 。
直到我看到了一本书《通用源码阅读指导书》,感觉才找到了源码阅读的方法,也正是在这本书的指导下 , 我读完了第一份开源源码MyBatis 。
1 意义与难点
这本书最开始讲了源码阅读的优点,作者总结了四点:- 透彻地理解项目的实现原理
- 接触到成熟和先进的架构方案
- 学习到可靠与巧妙的实施技巧
- 发现自身知识盲点,提升自身知识储备
2 源码选择
阅读源码的一个重要工作就是选择合适的源码 , 作者总结了选择源码的几个纬度:- 项目的成熟度
- 项目的应用广度
- 项目的涉及面
- 项目的规模
3 源码阅读方法
选好源码项目之后,要做的就是阅读源码 。作者介绍了源码阅读的方法、技巧、经验 。主要包括两个大的步骤:
- 项目初探
- 源码阅读
在源码阅读环节,作者总结了许多的源码阅读方法 。
4 源码阅读
作者介绍了以下几个主要的阅读方法:- 模块分析:通读整个模块中的类,分析模块的主要功能 。
- 模块归类:按照模块功能将模块进行分类,例如分为基础模块、核心模块、解析模块等等 。
- 自底向上:阅读源码的一个重要的思路就是自底向上,先阅读外围模块,再深入核心模块,这样可以避免阅读源码时牵扯到太多的未阅读模块,打乱源码阅读的思路 。
- 合理猜测:阅读源码时,可以根据功能合理猜测其具体实现,然后再通过源码分析是否和猜测一样 。这样可以提升源码阅读的效率 , 也能提升自己的架构能力 。
- 类比阅读:可以通过相似代码的比较,找出架构的异同点,然后分析这样架构的意义 。
- 善于汇总:需要不断汇总每个模块的含义,与其他模块的关系等,从而整体理解整个项目 。
- 网格阅读:作者提出要纵向阅读以从浅到深,也要横向阅读,找准同层次的架构关系 。
而在每个章节前,作者还介绍了相关的基础知识,使得源码的阅读比较顺畅 。
总结
《通用源码阅读指导书》是一本很好的源码阅读入门书,是一本教会你“如何阅读源码”的书籍,也能让你在源码阅读中总结相关的架构知识 。读完收获很大,推荐 。
【如何阅读源码?】