主题
01 · AI 时代学 Go:官方文档优先
目标:建立「官方为真源、AI 为加速器」的学习法,避免被博客/二手代码带偏。
1. 为什么还要系统学,而不是「全交给 AI」
AI 很擅长生成「看起来像 Go」的代码,但常见翻车点:
| 现象 | 风险 |
|---|---|
| 混用旧 GOPATH 心智与 modules | go get / 路径混乱 |
| 乱引入过时第三方框架 | 入门周就被框架淹没 |
忽略 err、乱 _ = | 运行时静默失败 |
| 并发示例抄错(无 wait / 无 close) | 偶发死锁、泄漏 |
| 捏造不存在的标准库 API | 编译不过或行为诡异 |
结论:AI 适合「起草 → 你对照官方验收 → 再改」;不适合「从不打开 go.dev」。
2. 官方资源地图(只认这些当一级资料)
按学习顺序:
text
go.dev/doc/ ← 总目录
├─ tour/ ← 语言本体(必做)
├─ code ← 如何写 Go 代码 / 模块入门
├─ effective_go ← 习语(扫读,注意文首过时声明)
├─ modules ← 模块工作流
└─ 各标准库文档 ← 以 pkg.go.dev 为准1
2
3
4
5
6
2
3
4
5
6
| 资源 | URL | 用途 |
|---|---|---|
| 文档首页 | https://go.dev/doc/ | 找一切官方入口 |
| Tour | https://go.dev/tour/ | 交互学语法与并发 |
| How to Write Go Code | https://go.dev/doc/code | 模块、包、go 命令 |
| Effective Go | https://go.dev/doc/effective_go | 命名、控制流、接口习语 |
| Using Go Modules | https://go.dev/doc/modules | 日常 modules 操作 |
| 语言规范 | https://go.dev/ref/spec | 争议时查「语言怎么说」 |
| 包文档 | https://pkg.go.dev/std | 标准库权威说明 + 可运行 Example |
二级资料(Tour 做完后再用):Go by Example、优质博客。永远低于官方。
3. AI 时代工作流(推荐默认)
text
1. 打开官方某一页 / Tour 某一课
2. 自己先写 5~15 行(允许很丑)
3. 再问 AI:「对照官方 X 文档,审查这段代码的 idiomatic 问题」
4. 让 AI 给「最小改动」;你手动跑 go test / go vet
5. 把「卡点一句话」记进本系列笔记1
2
3
4
5
2
3
4
5
对 AI 的三条硬约束:
- 指定版本与范围:如「只用 Go 1.22+ 标准库,不要 Gin」。
- 要求引用官方:如「给出对应
pkg.go.dev包路径与函数名」。 - 禁止默默加依赖:第三方包必须你点头再
go get。
4. 和你已有栈的对照(建立迁移锚点)
| 你熟悉的 | Go 侧 | 本系列哪篇深入 |
|---|---|---|
| npm / package.json | go.mod + go.sum | 02 |
| Express/Koa | 先 net/http | 07、10 |
| Promise / async-await | goroutine + channel + context | 06 |
| TypeScript interface | Go interface(隐式满足) | 05 |
| Jest | testing + table-driven | 08 |
| 让 Cursor 写业务 | 用审查清单审 Go | 09 |
5. 两周学习契约(可验收)
- [ ] 收藏并打开过
go.dev/doc/、Tour、pkg.go.dev/std - [ ] 能向他人用 30 秒说清:官方优先、AI 只做审查与加速
- [ ] 开始第 02 篇:本机
go version成功
