Golang学习路线

Golang 学习路线规划

从语法基础到微服务实战的完整学习路径

Phase 1: Golang 语法基础

预计时间:5 天

  • 基础语法、数据类型、变量声明
  • 控制流(if/elseforswitch
  • 函数、数组、切片、Map
  • 结构体、指针

Phase 2: Golang 核心包

预计时间:2 周

Step 1:核心概念

Goroutine、Channel、Select、Sync、Context

Step 2:实战项目

手搓并发爬虫。多个 Goroutine 同时抓页面,用 Channel 做任务队列,用 WaitGroup 等所有任务完成。


Phase 3: Web 开发实战

预计时间:1 个月

技术栈

使用框架 Gin + GORM + Redis

完整的 CRUD 项目

  • 用户注册登陆(JWT 认证)
  • 数据库操作(用 GORM 连接 MySQL)
  • Redis 缓存(go-redis)
  • 参数校验、中间件、错误处理
  • 单元测试

三层架构

  • Controller 层:处理 HTTP 请求,参数解析
  • Service 层:业务逻辑
  • DAO 层:数据库操作

Phase 4: 微服务入门

框架选择

go-zero、Kitex、Kratos

需要理解的方向

  • RPC 调用和与 HTTP 区别
  • Protobuf 怎么用?为什么比 JSON 快?
  • 服务发现是什么?Etcd、Consul、Nacos 怎么选?
  • 负载均衡、熔断、限流、重试

实战项目

搭建微服务 demo:用户服务和订单服务分开部署、用 RPC 互相调用。


Phase 5: 深入研究

  • GMP 调度模型
  • 内存管理:堆栈如何分配、逃逸分析、GC 工作机制
  • Channel 底层实现:环形队列、等待队列、锁机制
  • Context 原理:如何取消传播

Phase 6: 进阶

  • 云原生:Docker、K8s
  • 中间件
  • 分布式系统:Raft 共识算法、分布式事务、一致性哈希

代码不是结论,更像我理解世界时留下的草稿。