浅谈源码阅读

121 阅读1分钟
原文链接: www.jianshu.com

经典的源码像诗,值得细细品味

1. 明确目的

阅读书籍和源码最好带着自己的问题和目的,这样可以避免“看了就忘”的尴尬状态。

读研期间,为了掌握嵌入式开发,读了很多Linux的内核源码,摸索清楚了一个Linux系统从系统加电到控制台出现的流程。刚毕业转Java开发那会,为了掌握后端开发,读了很多Spring的源码,搞清楚了一个请求从到达后端服务器开始,到返回响应的流程、搞清楚了IoC和AOP的工作原理。

最近开始阅读RocketMQ的源码,目的有两个:

  1. 学习MQ的通用知识(可靠发送、可靠消费、顺序消息、消息优先级等等)、RocketMQ自己的实现,以及不同MQ之间的比较。
  2. 学习RocketMQ中对Java并发、Netty等框架的使用

2. 基本流程

源码阅读是有一定的套路的。以RocketMQ为例,分享下我的方法:

  • (1)我会先去学会基本的使用;
  • (2)阅读官网的文档,了解该中间件的整体架构、核心概念;
  • (3)梳理基本功能的实现,例如系统启动、发送消息、消费消息的过程;
  • (4)关键点梳理,例如高可用如何实现?上亿的堆积能力如何实现?低延迟如何实现?顺序消息如何实现?

另外,如果需要精读甚至定制开发时,才有必要搭建一套debug环境。