1.画框架图,了解有多少模块,模块分别处于哪一层。
2.画序列图,画出每个上层接口调下来分别调用了那些模块的哪些接口完成功能。
3.打印日志,通过打开verbose级别log,抓取功能运行起来的输出LOG,然后对应Code来找到调用的主path和相关状态成员的变化。至此,在框架发生问题时,进行基础的调试定位工作。
4.了解代码完成的功能和code主Path后,分模块来细嚼慢咽,通过一个调用path上下文来看,其中一个模块的实现逻辑,每次只看一个模块,通常是从比较底层模块开始看起,逐步向上层。可以通过画出数据或者状态流程图来加深理解。
5.学习模块代码时,及时记录下生或疏的知识点或者状态变化复杂的行为逻辑。
6.带着之前学习path或者模块时的疑问来深入review一些细节代码或者path。
7.回过头审视整个框架的设计,包括模块和分层的架构设计,有什么规律或者好设计思路。
8.整体学习思路是从颗粒度大到小,最后回来到整体review架构。