Go 语言学习路线图
一、为什么学 Go?
- 简洁、直观,容易上手,语法像 C 又比 C 简洁
- 天然支持并发(goroutine + channel)
- 编译速度快、跨平台强、部署简单(一个二进制)
- 在 云原生(K8s)、微服务、工具链开发 领域非常受欢迎
- 拥有丰富的标准库与成熟的社区
二、学习阶段与资源
第一阶段:Go 基础语法 & 核心概念
内容:
- 变量、常量、类型
- 流程控制(if、for、switch)
- 数组、切片、map、字符串
- 函数、返回值、defer
- 结构体、方法、接口
- 包与模块(go mod)
推荐资源:
- 官方文档:https://go.dev/doc/
- 在线教程:https://tour.golang.org/
- 《Go语言圣经》(The Go Programming Language)
- 《Go语言实战》(Go in Action)
实践建议:
- 用 Go 写小工具:如 CLI 计算器、备份脚本、HTTP 下载器
第二阶段:Go 的并发编程与工程实践
内容:
- goroutine、channel 的使用与设计
- select 语句、多路复用
- sync 包(Mutex、WaitGroup)
- context 控制协程生命周期
- 错误处理与 panic/recover
实践建议:
- 模拟爬虫、批量下载器、并发抓图器
- 写一个带并发处理的 TCP/HTTP 服务器
第三阶段:Go 项目开发与生态工具链
内容:
- Go modules & 项目结构组织
- 单元测试(testing 包、gomock)
- 日志管理(logrus, zap)
- 配置管理(viper)
- 命令行工具(cobra)
- 依赖注入、代码生成工具(wire)
实践建议:
- 编写 CLI 工具(命令行应用)
- 用 Go 写一个 RESTful API 服务(搭配 gin/gonic)
第四阶段:Go + 云原生开发
技术栈:
- gin / echo / fiber(Web 框架)
- gorm / sqlx(数据库 ORM)
- grpc(高性能 RPC)
- Docker、Kubernetes 开发与部署
- OpenTelemetry(可观测性)
- Go 微服务架构实战
项目实践建议:
- RESTful API + JWT 鉴权
- 基于 gRPC 的微服务系统
- 接入 Prometheus + Grafana 监控你的服务
3 实践项目推荐
基础练手:
- 实现一个终端 Todo 程序
- 网址短链接生成器
- 基于 channel 实现并发下载工具
Web 应用:
- 简单博客系统(gin + GORM)
- 文件上传服务 + 七牛云 SDK 封装
- 用户登录鉴权系统(JWT)
云原生项目:
- Go 编写的 Docker 镜像构建器
- gRPC 微服务 + consul 注册发现
- Kubernetes Controller 自定义开发
4 工具链与社区推荐
包管理:
go mod
包文档查看:
go doc
,godoc.org
静态检查:
golangci-lint
格式化工具:
gofmt
,goimports
热重载工具:
air
社区精选:
5 建议
- 写比看更重要:多写代码、多 debug
- 先学标准库,再学第三方库:Go 的标准库非常强大
- 关注源码:如
net/http
,context
,os
等包的源码值得深入阅读 - 持续练习:建议每日 1 小练,周末做小项目
阶段 | 目标 | 实践 |
---|---|---|
入门语法 | 熟悉基本语法与数据结构 | 完成 10 个小程序 |
并发与工程 | 掌握 goroutine 与项目组织方式 | 写爬虫、日志系统、命令行工具 |
Web 开发 | 能构建完整的 RESTful 服务 | 博客系统、用户系统、gRPC 项目 |
云原生拓展 | 掌握服务治理、监控、分布式架构 | 微服务、容器部署、监控集成 |