Go

后端开发 · 预计 4-6 周 · 4 阶段

Go 以极简语法与原生并发著称,是 Kubernetes、Docker 等云原生基础设施的核心语言。路线图从语法与特性出发,逐步掌握并发模型、HTTP 服务开发与工程化实践,适合目标后端/云原生方向的学习。

初级
学后可投:Go 后端工程师云原生开发工程师微服务工程师
学习进度:已完成 0 / 4 阶段0%

下一阶段目标:语法基础与特性(完成当前阶段后自动推进)

学习路线图按顺序学完每一阶段

Go进度 0%● 当前 · 阶段 1语法基础与特性阶段 2并发模型阶段 3HTTP 服务与工程…阶段 4数据库与微服务实战

点击阶段节点直达学习内容;绿色=已完成,彩色=当前阶段

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 阶段
进行中

下一阶段:语法基础与特性

📄 帮你写简历~
Go 学习路线图 · 简历加分知识库 · 简历加分