Go 语言基础与进阶¶
Go 语言课程的目标不是只学会语法,而是从“能写 Go”逐步走到“理解 Go 的设计、运行方式和工程取舍”。
学习目标¶
学完本课程后,学习者应该能够:
- 熟练使用 Go 基础语法、类型系统、函数、方法、结构体和包。
- 能用 Go module、测试、格式化、静态检查组织一个可维护项目。
- 理解 Go 的错误处理、接口、组合、泛型和常见数据结构底层行为。
- 能正确使用 goroutine、channel、锁、atomic、context 和 race detector。
- 能解释 Go runtime 的调度、GC、逃逸分析、pprof 和 trace 的基础概念。
- 能写出适合后端服务的清晰、可靠、可测试 Go 代码。
课程结构¶
建议按下面顺序学习:
为什么后端工程师要深入学习 Go¶
很多 Go 后端问题不是“语法不会”,而是对语言行为和运行时理解不够:
- slice append 后底层数组共享,导致数据被意外修改。
- map 并发读写触发 panic。
- HTTP 调用没有传 context,客户端断开后 goroutine 还在跑。
- 错误被包装后,调用方无法判断错误类型。
- goroutine 泄漏,服务内存持续上涨。
- 不了解连接池、超时和 pprof,线上问题只能猜。
Go 看起来简单,但写好生产服务需要理解它的边界、约定和工程习惯。
学习方式¶
- 先把语法写熟,再理解设计取舍。
- 每个知识点都要关联后端服务场景,不只写玩具代码。
- 代码优先清晰和可维护,不追求炫技。
- 并发代码必须考虑取消、超时、资源释放和数据竞争。
- 实战任务先独立完成,再展开参考答案对照。
学习提醒
Go 的强项是简单、明确、工程化。高级 Go 后端工程师不是写最花的代码,而是写长期稳定运行、别人容易接手、出了问题能定位的代码。