如何阅读源码
Understanding the Technique
- Answer questions: what is it? How it works? What is the project mission?
 - Its structure and functionality of modules.
 - Use it. Get experience with the technology.
 
Prepared for Starting Reading Source code
- Collecting questions.
 - Choosing a version of source code.
 - Start with a point of a question.
 
The Process of Reading Source Code
- 对该技术有一些了解。最好用过它。能够理清它的目标使命,功能模块,核心功能。
 - 从问题入手。先准备好,看源码时你要解决的问题。
 - 通过不断地多次 debug 程序 (需要注意 debug 的技巧,快捷键跳转和看日志信息(DEBUG or TRACE))和记笔记(主要记录关键的源文件,核心方法,核心代码,关键变量的值,以及一些类的继承关系的层次结构)。最终,了解问题实现的整个大致流程。
 - 整理信息,画一个初步的时序图。
 - 了解完整的流程。继续不断地 debug 程序,画出一个详细的时序图。
 - 了解所有步骤的具体实现。一行一行代码去详细地了解问题的每一步的具体实现。
 - 用自己的话简单地总结这个问题的实现过程。
 
Methods of Reading Source Code
- 洋葱阅读法。逐渐深入细节。
 - 用自己的话总结一段代码。
 - 使用 IDE 的快捷键进行代码跳转。使用独立窗口打开重要的源码文件。关键代码行添加到书签。
 - 使用比较早的比较简单的版本的源码。
 - 用 UML 图表示代码逻辑和结构,帮助你理解和记忆。
 - 修改和测试源码。
 - 打印该技术框架的 DEBUG 日志。
 
References
[1] How to read code without ripping your hair out