1.项目的基础性了解

了解项目的背景、解决问题的场景、项目功能、使用场景、基本API的使用。

2.系统性学习和实践

对项目要有系统性、全面性的了解。包括项目的功能、项目结构、组成模块、基本原理、使用场景、配置项、API的使用、与其他项目对比的优缺点(使用技术栈的优缺点)。

  1. 安装运行
    • 根据项目文档的说明,安装项目依赖的组件
    • 安装目录(目录结构)
    • 系统提供的工具
  2. 系统性研究原理和特性
    • 关键特性的基本实现原理
    • 优缺点对比分析(两个类似的系统)
    • 使用场景(业界常见案例)

可以看网上有没有该项目的分析文档。每个人的理解都不同,可以多找几份来对比研究。

3.系统测试

在对项目有了系统性了解的基础上,可以进行测试。此步骤是在工作中需要用到该项目时才去做,一般自己学习可以不做,因为比较耗费时间。

  • 核对每个配置项的作用和影响,识别出关键配置项
  • 进行多种场景的性能测试
  • 进行压力测试,连续跑几天,观察CPU、内存、磁盘IO等指标波动
  • 进行故障测试:kill、断电、拔网线、重启100次以上、倒换等。

这里需要系统测试的流程有一个了解,可以自己网上找找资料学习。

4.关键源码学习

使用IDE工具,通过打断点和运行example的方式来进行调试(IDEA的调试方法需要学习一下)。搞清楚各调用栈之间的关系,可以画图。