Go
后端开发 · 预计 4-6 周 · 4 阶段
Go 以极简语法与原生并发著称,是 Kubernetes、Docker 等云原生基础设施的核心语言。路线图从语法与特性出发,逐步掌握并发模型、HTTP 服务开发与工程化实践,适合目标后端/云原生方向的学习。
学后可投:Go 后端工程师云原生开发工程师微服务工程师
学习进度:已完成 0 / 4 阶段0%
下一阶段目标:语法基础与特性(完成当前阶段后自动推进)
学习路线图按顺序学完每一阶段
点击阶段节点直达学习内容;绿色=已完成,彩色=当前阶段
1
当前阶段语法基础与特性
3-5 天难度 入门
核心知识点
变量/常量/基础类型流程控制与函数数组/切片/映射结构体与方法
本阶段学习内容
要点速记
- 切片是引用类型:append 扩容、函数传参共享底层数组
- map 安全取值:v, ok := m[k]
- 结构体 + 方法模拟面向对象;指针接收者可修改字段
- Go 错误是返回值,不随意 panic
本阶段练习题(点击选项作答)
1. Go 切片作为函数参数修改元素会?
2. Go 的错误处理哲学是?
练习任务
- 用 Go 实现命令行 Todo(读写 JSON)
- 重写一个熟悉的算法题(如 LRU 缓存)
本阶段验收标准
完成 Tour of Go 前 60% 模块,独立实现 5 个小程序
2
并发模型
4-7 天难度 初级
核心知识点
goroutine 与调度channel 通信select 多路复用sync 包(WaitGroup/Mutex)
本阶段学习内容
要点速记
- goroutine 轻量并发:go func() 启动,WaitGroup 等待完成
- channel 通信:send/receive 默认阻塞,close 通知完成
- select 多路复用 + time.After 做超时
- 铁律:通过通信共享内存,而非共享内存通信
本阶段练习题(点击选项作答)
1. 等待一组 goroutine 全部完成用?
2. 向无人接收的 channel 发送会发生什么?
练习任务
- 实现并发爬虫(限流 + 汇总)
- 写一个带超时控制的任务队列
本阶段验收标准
能讲清 goroutine 泄漏与竞态条件,并写出无竞态的并发程序
3
HTTP 服务与工程化
4-7 天难度 中级
核心知识点
net/http 与路由Gin 框架中间件与鉴权JSON 处理与日志
本阶段学习内容
要点速记
- Gin 路由:参数 /users/:id、绑定到 struct、JSON 响应
- 中间件 c.Next() 放行,鉴权后把用户注入 context
- JSON tag 控制字段名与忽略(omitempty)
- 生产日志用 zap 结构化输出,不用 fmt.Println
本阶段练习题(点击选项作答)
1. Gin 路由参数 /users/:id 的获取方式是?
2. 中间件传递用户信息到后续 handler 用?
练习任务
- 用 Gin 实现用户 CRUD API
- 给 API 加 JWT 鉴权中间件
本阶段验收标准
独立开发一个带鉴权与日志的 REST API 并跑通测试
4
数据库与微服务实战
5-10 天难度 高级
核心知识点
GORM 数据库操作gRPC 与 ProtobufDocker 化部署项目分层与测试
本阶段学习内容
要点速记
- GORM:Model ↔ 表、AutoMigrate 建表、Transaction 事务
- GORM First 查不到返回 ErrRecordNotFound,用 errors.Is 判断
- Go 静态编译:CGO_ENABLED=0 交叉编译,镜像极小
- 生产标配:/healthz 健康检查 + 信号优雅退出
本阶段练习题(点击选项作答)
1. GORM 中记录不存在时 First 的表现?
2. Go 镜像为什么可以做到几 MB?
练习任务
- 用 GORM + SQLite 实现订单模块
- 写一个 gRPC 服务并写单元测试
- 用 Docker 部署 Go 服务
本阶段验收标准
交付一个分层架构 + 测试 + Docker 部署的完整 Go 服务
怎么学
学习方法与实操建议,配合路线图按阶段推进
- 1以官方文档「A Tour of Go」起步,配合在线练习平台巩固
- 2并发章节多写 demo:goroutine 泄漏、channel 阻塞都是经典坑
- 3用「标准库优先」的原则写项目,少引第三方依赖
- 4参加 LeetCode Go 题解 + Go 中文社区交流
学完能做什么
- 用 Go 开发高性能 HTTP 服务
- 掌握 goroutine 并发模型
- 理解云原生基础设施常用语言
面试常见问题6 题
常见误区
- 1把 Python/Java 习惯硬搬到 Go(继承/异常)
- 2不了解 goroutine 调度就写并发代码
- 3错误处理用 panic 代替 error 返回值
- 4忽略 gofmt/go vet 等官方工具链
学习节奏建议
预计 4-6 周,共 4 个阶段。
每阶段按标注时长安排:先读参考文档掌握核心知识点,再完成练习任务,通过 验收标准后标记完成进入下一阶段。
当前为游客模式,进度保存在本设备;登录后可云端同步、多端续学。
当前进度
0%
0 / 4 阶段
进行中
进行中
下一阶段:语法基础与特性