文章

小徐的 Go 进阶学习计划

小徐的 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 内部顺序)

优先级理由
P0fmt / os / strings / errors / sync / context / net/http / encoding/json覆盖日常 80% 场景
P1io / bytes / bufio / time / flag / testing / log服务开发必备
P2crypto/* / encoding/* / net / sort / reflect / runtime / pprof进阶与调优

四、每日节奏

时段时长内容
工作日30-45min1 个小节阅读 + 代码练习
周末1.5-2h实战任务推进 + 周复盘(老师出周测)

五、里程碑与验收

  • 阶段 1 结束 → 并发测验(老师出 5 道选择题 + 1 道代码题,重点考 panic / race / channel 关闭)。
  • 每个阶段末 → 实战作业 + 代码 review。
  • 第 8 周结束 → 综合项目:独立设计一个并发安全的服务模块(参考 care-mate 某一子系统),产出代码 + 测试 + 简短设计说明。

六、启动动作

  1. 小徐先阅读 00-概述与学习路径.md 建立全局视图。
  2. 阶段 1 从 02-语言特性/02-并发模型.md + 03-标准库/04-并发原语.md 开始。
  3. 每完成一个小节,在 care-mate 或练习仓库里写对应代码,发给我 review。