如何高效地学习开源项目

开源项目对团队和业务有很大好处,但对于技术人员来说,如果只是简单的采取"拿来主义",那就变成一个陷阱:看似很快的用开源项目实现了需求,但自己的技术水平并没有什么提升;甚至可能出现看起来用了很多开源项目,知道很多项目名称,但技术水平止步不前的窘境。

  • 源码不是第一步,而是最后一步。

技巧

  1. 安装
    • 系统依赖组件(系统设计和实现的基础)
    • 安装目录(使用和运行的基本信息)
    • 系统工具(方便我们使用)
  2. 运行
    • 命令行(具备那些能力和系统将会如何运行)
    • 配置文件(修改配置文件,看下系统变化)
  3. 原理研究(系统性)
    • 架构图
    • 关键特性的基本实现原理
    • 优缺点对比分析(类似系统对比,实现差异,不同实现的优缺点)
    • 研究手段
      • 通读项目的设计文档
      • 阅读网上已有的分析文档(多方对照,比较内容共同点和差异点)
      • Demo验证(查不到资料,又不能确认)
  4. 测试(实际项目采用开源项目使用前)
    • 结合业务场景进行验证
  5. 源码研究(不建议通读源码):灵活安排
    • 带着明确目的研究
    • Demo调试,查看完整堆栈

经典源码项目:spring,netty4,redis

笔记

  1. 标注和记录:将重点和关键部分标注或者摘录出来

  2. 归纳和整理:将内容提炼,按照主题分类总结

  3. 思考和总结:思考为什么,作者说的是否有不对的,或者片面的地方等

每个季度只学习一个开源项目,将开源项目研究透彻。