1.项目的基础性了解
了解项目的背景、解决问题的场景、项目功能、使用场景、基本API的使用。
2.系统性学习和实践
对项目要有系统性、全面性的了解。包括项目的功能、项目结构、组成模块、基本原理、使用场景、配置项、API的使用、与其他项目对比的优缺点(使用技术栈的优缺点)。
- 安装运行
- 根据项目文档的说明,安装项目依赖的组件
- 安装目录(目录结构)
- 系统提供的工具
- 系统性研究原理和特性
- 关键特性的基本实现原理
- 优缺点对比分析(两个类似的系统)
- 使用场景(业界常见案例)
可以看网上有没有该项目的分析文档。每个人的理解都不同,可以多找几份来对比研究。
3.系统测试
在对项目有了系统性了解的基础上,可以进行测试。此步骤是在工作中需要用到该项目时才去做,一般自己学习可以不做,因为比较耗费时间。
- 核对每个配置项的作用和影响,识别出关键配置项
- 进行多种场景的性能测试
- 进行压力测试,连续跑几天,观察CPU、内存、磁盘IO等指标波动
- 进行故障测试:kill、断电、拔网线、重启100次以上、倒换等。
这里需要系统测试的流程有一个了解,可以自己网上找找资料学习。
4.关键源码学习
使用IDE工具,通过打断点和运行example的方式来进行调试(IDEA的调试方法需要学习一下)。搞清楚各调用栈之间的关系,可以画图。