Skip to content

Go 学习路线总览

这是一份为已经有其他语言(如 JS/TS、Java、C++)基础的开发者准备的 Go (Golang) 学习路线图。 从 "Hello World" 到 "并发模型(Goroutine/Channel)",再到 "微服务、K8s与云原生实践" 的完整闭环。

一句话先记住:Go 的设计哲学是大道至简。它用极简的语法(没有类、没有继承、没有泛型狂热)加上极强的并发模型,成为了云原生时代(Docker, Kubernetes)的绝对统治者


一、整套教程的结构

按 "从基础到云原生实战" 分五部分,前三部分讲语言与并发机制,后两部分讲工程与微服务

部分主题解决的核心问题
一、基础与语法变量、函数、结构体、接口掌握极简主义的 Go 语言基础与面向接口编程
二、底层与进阶内存、指针、反射、错误处理理解 Go 的底层结构(Slice/Map)与工程规范
三、并发编程(核心)Goroutine、Channel、ContextGo 的灵魂所在,如何优雅地处理高并发
四、Web 与网络服务HTTP、框架、数据库、gRPC用 Go 干后端真实的活(Gin/GORM/微服务基础)
五、高级实战与调优性能剖析(pprof)、GC、云原生结合榨干性能,深入剖析运行时,对接 K8s/Docker 生态

二、完整目录(规划约 30 篇)

第一部分:基础语法与面向接口

  • 02-环境搭建与Go Modules全家桶.md —— go mod:极简而强大的包管理
  • 03-基础语法速通.md —— 变量、数据类型、控制流与 defer
  • 04-数组、切片(Slice)与映射(Map).md —— 日常开发最常用的数据结构
  • 05-函数与多返回值.md —— 一等公民与多返回值的最佳实践
  • 06-结构体(Struct)与方法.md —— 没有 Class,如何做面向对象编程?
  • 07-接口(Interface)与鸭子类型.md —— Go 语言多态的灵魂

第二部分:核心机制与工程规范

  • 08-指针与内存布局基础.md —— 为什么到处都是 &*
  • 09-错误处理与Panic-Recover机制.md —— 为什么会有这么多 if err != nil
  • 10-底层大起底:Slice与Map是怎么实现的.md —— 面试必问的底层扩容原理
  • 11-类型断言与反射(Reflection).md —— JSON 序列化和 ORM 是怎么做出来的
  • 12-自动化测试与Mock.md —— 表格驱动测试、基准测试(Benchmark)与 TDD
  • 13-泛型(Generics).md —— Go 1.18 之后的新世界

第三部分:并发编程(Goroutine 与 Channel)

  • 14-并发模型:Goroutine与GMP调度器.md —— 为什么单机能跑百万个 Goroutine?
  • 15-Channel:不要通过共享内存来通信.md —— 无缓冲、有缓冲与 select 多路复用
  • 16-sync包:Mutex, WaitGroup与Map.md —— 传统的并发同步利器
  • 17-Context:控制超时与上下文取消.md —— 每个 Go 后端函数第一个参数为什么都是 ctx?
  • 18-经典并发模式实战.md —— Worker Pool、Fan-in/Fan-out 与 Pipeline
  • 19-并发陷阱:竞态条件与死锁分析.md —— 用 go run -race 找出并发 Bug

第四部分:Web 实战与服务开发

  • 20-标准库net-http与路由机制.md —— 不用框架也能写高性能 Web 服务
  • 21-Gin框架实战(一):路由、中间件与鉴权.md —— 最流行的 Go Web 框架
  • 22-数据库交互实战:database-sql与GORM.md —— 关系型数据库操作的最佳姿势
  • 23-NoSQL交互:Redis与Elasticsearch.md —— 高并发场景的缓存与检索
  • 24-微服务通信:RPC与gRPC.md —— Protobuf 与跨语言服务调用
  • 25-Gin框架实战(二):项目目录分层设计.md —— Clean Architecture 在 Go 中的落地

第五部分:云原生与性能调优

  • 26-性能剖析利器:pprof与trace.md —— 找出 CPU、内存与 Goroutine 泄漏的元凶
  • 27-垃圾回收(GC)机制与内存逃逸分析.md —— 三色标记法与如何减少堆分配
  • 28-Go与Docker:编写极致的Dockerfile.md —— Multi-stage build 与几兆的超小镜像
  • 29-Go与Kubernetes:Operator开发基础.md —— 用 Go 写云原生扩展
  • 30-实战:手写一个高并发短链接服务.md —— 整合全系列知识的最终章

三、推荐的工具链

用途工具备注
IDE/编辑器GoLand (JetBrains) / VSCode (Go插件) / CursorGoLand 开箱即用体验最好
编译器套件go build, go run, go testGo 的工具链非常纯粹且内置完备
格式化与Lintgofmt, golangci-lintgofmt 终结了缩进与大括号换行的圣战
版本管理gvm / asdf / goenv用于在同一台机器切换多个 Go 版本

四、给新手的几个忠告

  1. 接受 if err != nil 不要觉得麻烦,显式处理错误是 Go 的核心哲学,它让你的代码在生产环境极度稳定。
  2. 少用反射(Reflection)和 interface{} Go 是强类型静态语言,虽然反射能实现黑魔法,但在高频路径下会导致严重的性能问题。
  3. 并发不是并行。 不要随手就开个 Goroutine 去跑任务,没有限制的 Goroutine 是服务 OOM(内存泄漏)的罪魁祸首。
  4. 组合优于继承。 抛弃 Java/C++ 那套深层次的类继承体系,在 Go 里,通过把小接口结构体拼装在一起来复用代码。

下一篇:02-环境搭建与Go Modules全家桶.md,十分钟搞定开发环境。

最后更新: