开源项目源码阅读笔记,记录架构设计、核心算法、highlight(主观)与权衡取舍(trade off)。
| 项目 | 类型 | 语言 | 状态 |
|---|---|---|---|
| JuiceFS | 分布式 POSIX 文件系统 | Go | ✅ 完成 |
| 项目 | 类型 | 语言 | 状态 |
|---|---|---|---|
| Kubeflow Trainer | K8s 分布式训练 Operator | Go | ✅ 完成 |
| Tinker | 训练/采样服务 Python SDK | Python | ✅ 进行中 |
待补充...
待补充...
待补充...
| 书籍 | 主题 | 状态 |
|---|---|---|
| DDIA | 数据密集型应用设计 | ✅ 框架完成 |
每个项目的笔记遵循统一模板 (00-TEMPLATE):
Project/
├── README.md # 项目概览、架构图、核心结构体
├── flows/ # 关键路径分析 (Lookup, Read, Write...)
├── modules/ # 模块详解 (含源码位置引用)
├── questions.md # 疑问与解答
├── highlights.md # 印象深刻之处 - 值得学习的设计
├── algorithms.md # 关键算法 - 原理与复杂度分析
├── tradeoffs.md # 权衡取舍 - 设计决策分析
├── exercises/ # 实战练习 (如 Rust 重写任务)
│
│ # 系统设计哲学 (可选,适用于复杂系统)
├── invariants.md # 不变量分析 - 系统必须维护的核心约束
├── control-data-plane.md # 控制面与数据面分离
├── reconcile-loops.md # 闭环设计 - Reconcile Loop 模式
├── extension-points.md # 扩展点设计 - 插件机制分析
├── evolution-strategy.md # 演进策略 - 版本管理与迁移
├── anti-patterns.md # 反模式识别
└── sot-analysis.md # 真相之源分析 - 数据权威性
- 源码位置引用: 所有分析都标注具体文件和行号 (如
pkg/meta/interface.go:116) - Mermaid 流程图: 关键流程用图表展示
- 代码片段: 保留核心实现代码,便于理解
- 惊艳之处: 记录令人印象深刻的设计,可在其他项目借鉴
- 算法详解: 包含复杂度分析和伪代码
- 权衡分析: 理解每个设计决策的利弊
- 系统设计哲学: 分析不变量、控制/数据面分离、闭环设计等架构模式
- 快速了解项目: 阅读项目的
README.md - 深入某个模块: 查看
modules/下对应文件 - 理解核心流程: 阅读
flows/下的路径分析 - 学习设计技巧: 阅读
highlights.md和algorithms.md - 理解设计决策: 阅读
tradeoffs.md - 学习架构哲学: 阅读系统设计哲学相关文件 (invariants, reconcile-loops 等)
MIT