小徐的 Go 进阶学习计划
由 WorkBuddy(老师角色)基于小徐现有背景 + 水平校准题制定。
配套资料:07-Knowledge/Go开发完整指南/(29 个文件,覆盖工程化/语言特性/标准库/生产实践)。
一、水平评估结论(校准后)
总判定:L2(初级 → 中级过渡),强弱分化明显。
| 维度 | 客观校验 | 定级 | 说明 |
|---|
| 接口 / 泛型 | 校准题答对 | L3 扎实 | 约束语法清楚,无需从头讲 |
| 并发模型 | panic 题答错 | L1-2 薄弱 | 误以为 goroutine panic 不影响其他协程(实际未 recover 会终止整个进程) |
| 标准库 | 未测,自选全要 | 待系统补 | 自述要「囊括基本库」,说明未系统过 |
| 性能 / 工程化 | 未测,自选要 | 待补 | 有 CI 底子,缺规范测试与调优套路 |
关键风险:并发底层有认知偏差,阶段 1 必须先拔并发,否则后续并发代码会埋 data race / 泄漏雷。
二、教学方案(方法论)
- 节奏:混合(薄弱章先打地基 + care-mate 真实案例驱动)。
- 三件套:每个模块 = 读指南对应章(理论 30min)→ 写代码练习(实战 30-45min)→ 老师出题验收(纠偏)。
- 实战锚点:care-mate 项目(Go 后端 + SkyWalking-Go agent)作为案例库,每阶段挑真实代码片段分析/改造。
- 老师角色:出校准题与阶段测验、review 代码、纠正并发/性能认知偏差。
三、学习计划(8 周 · 4 阶段)
| 阶段 | 周期 | 主攻模块(对应指南章节) | 实战任务 | 验收标准 |
|---|
| 1 并发地基 | 第1-2周 | 02-02 并发模型、03-04 并发原语、03-10 运行时调试 | ① care-mate 所有 go 语句做并发安全 review ② 写带超时+限流+错误聚合的并发任务池 | 正确解释 panic 行为;go test -race 通过;无 data race |
| 并发补强(概念纠偏) | 阶段1内 | GMP 调度、channel 关闭语义、context 取消传播、sync 全家桶 | 手绘 goroutine 生命周期 + 退出传播图 | 能口述「主 goroutine 退出 / panic / context cancel」三者的退出传播差异 |
| 2 标准库全貌 | 第3-5周 | 03 标准库 15 章(P0→P2) | 用纯标准库给 care-mate 写运维 CLI(查 pod/日志/配置) | 不查文档完成常见任务;读懂 encoding/json 源码级行为 |
| 3 泛型与接口 | 第6周 | 02-04 接口与反射、02-05 泛型 | 把 care-mate 重复 CRUD handler 用泛型重构 | 能设计合理约束;判断何时接口/何时泛型 |
| 4 性能与工程化 | 第7-8周 | 04 生产实践、03-10 运行时调试 | 对 care-mate 做真实 pprof profile + 核心逻辑表驱动测试 | 能定位瓶颈、出火焰图;测试覆盖率达标 |
标准库优先级(阶段 2 内部顺序)
| 优先级 | 包 | 理由 |
|---|
| P0 | fmt / os / strings / errors / sync / context / net/http / encoding/json | 覆盖日常 80% 场景 |
| P1 | io / bytes / bufio / time / flag / testing / log | 服务开发必备 |
| P2 | crypto/* / encoding/* / net / sort / reflect / runtime / pprof | 进阶与调优 |
四、每日节奏
| 时段 | 时长 | 内容 |
|---|
| 工作日 | 30-45min | 1 个小节阅读 + 代码练习 |
| 周末 | 1.5-2h | 实战任务推进 + 周复盘(老师出周测) |
五、里程碑与验收
- 阶段 1 结束 → 并发测验(老师出 5 道选择题 + 1 道代码题,重点考 panic / race / channel 关闭)。
- 每个阶段末 → 实战作业 + 代码 review。
- 第 8 周结束 → 综合项目:独立设计一个并发安全的服务模块(参考 care-mate 某一子系统),产出代码 + 测试 + 简短设计说明。
六、启动动作
- 小徐先阅读
00-概述与学习路径.md 建立全局视图。
- 阶段 1 从
02-语言特性/02-并发模型.md + 03-标准库/04-并发原语.md 开始。
- 每完成一个小节,在 care-mate 或练习仓库里写对应代码,发给我 review。