跳转至

Go 语言基础与进阶

Go 语言课程的目标不是只学会语法,而是从“能写 Go”逐步走到“理解 Go 的设计、运行方式和工程取舍”。

学习目标

学完本课程后,学习者应该能够:

  1. 熟练使用 Go 基础语法、类型系统、函数、方法、结构体和包。
  2. 能用 Go module、测试、格式化、静态检查组织一个可维护项目。
  3. 理解 Go 的错误处理、接口、组合、泛型和常见数据结构底层行为。
  4. 能正确使用 goroutine、channel、锁、atomic、context 和 race detector。
  5. 能解释 Go runtime 的调度、GC、逃逸分析、pprof 和 trace 的基础概念。
  6. 能写出适合后端服务的清晰、可靠、可测试 Go 代码。

课程结构

建议按下面顺序学习:

  1. Go 基础语法
  2. Go 工程基础
  3. 错误处理
  4. 接口与组合
  5. Go 数据结构深入
  6. 并发编程
  7. Context
  8. Go Runtime
  9. 测试与代码质量

为什么后端工程师要深入学习 Go

很多 Go 后端问题不是“语法不会”,而是对语言行为和运行时理解不够:

  • slice append 后底层数组共享,导致数据被意外修改。
  • map 并发读写触发 panic。
  • HTTP 调用没有传 context,客户端断开后 goroutine 还在跑。
  • 错误被包装后,调用方无法判断错误类型。
  • goroutine 泄漏,服务内存持续上涨。
  • 不了解连接池、超时和 pprof,线上问题只能猜。

Go 看起来简单,但写好生产服务需要理解它的边界、约定和工程习惯。

学习方式

  • 先把语法写熟,再理解设计取舍。
  • 每个知识点都要关联后端服务场景,不只写玩具代码。
  • 代码优先清晰和可维护,不追求炫技。
  • 并发代码必须考虑取消、超时、资源释放和数据竞争。
  • 实战任务先独立完成,再展开参考答案对照。

学习提醒

Go 的强项是简单、明确、工程化。高级 Go 后端工程师不是写最花的代码,而是写长期稳定运行、别人容易接手、出了问题能定位的代码。