Phase 1: Golang 语法基础
预计时间:5 天
- •基础语法、数据类型、变量声明
- •控制流(
if/else、for、switch) - •函数、数组、切片、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 共识算法、分布式事务、一致性哈希