Skip to main content
Go(又称 Golang)是 Google 开发的一种静态类型、编译型编程语言,以简洁、高效和强大的并发支持著称。

目录

学习体系

┌─────────────────────────────────────────────────────────────┐
│                    Go 学习路线图                             │
├─────────────────────────────────────────────────────────────┤
│  第一阶段:Go 基础语法                                        │
│  ├── 环境搭建、变量常量、数据类型                             │
│  ├── 流程控制、函数、复合类型                                 │
│  └── 接口、错误处理、包管理                                   │
├─────────────────────────────────────────────────────────────┤
│  第二阶段:Go 并发与底层                                      │
│  ├── Goroutine 深入、Channel 高级用法                        │
│  ├── GMP 调度模型、内存模型                                   │
│  └── 垃圾回收、性能分析                                       │
├─────────────────────────────────────────────────────────────┤
│  第三阶段:Go Web 开发                                        │
│  ├── Gin 框架、路由中间件                                     │
│  ├── GORM 数据库操作                                          │
│  └── RESTful API、项目架构                                    │
├─────────────────────────────────────────────────────────────┤
│  第四阶段:Go 分布式                                          │
│  ├── Redis、消息队列                                          │
│  ├── gRPC、微服务                                             │
│  └── 分布式系统设计                                           │
├─────────────────────────────────────────────────────────────┤
│  第五阶段:Go 工程化                                          │
│  ├── 单元测试、性能测试                                       │
│  ├── 日志、配置管理                                           │
│  └── Docker、Kubernetes 部署                                  │
└─────────────────────────────────────────────────────────────┘

学习路线

第一阶段:Go 基础语法

> 目标:能够使用 Go 编写基本程序
序号主题内容链接
1环境搭建安装配置、开发工具、第一个程序进入学习
2基础语法变量、常量、数据类型、运算符进入学习
3流程控制条件判断、循环、switch、defer进入学习
4函数函数定义、多返回值、匿名函数、闭包进入学习
5复合类型数组、切片、Map、结构体进入学习
6接口接口定义、实现、类型断言进入学习
7错误处理error、panic、recover进入学习
8包管理Go Modules、依赖管理进入学习

第二阶段:Go 并发与底层

> 目标:深入理解 Go 并发模型和运行时机制
序号主题内容链接
1并发基础Goroutine、Channel、sync 包进入学习
2GMP 调度G、M、P 概念、调度流程、抢占式调度进入学习
3内存模型内存分配、逃逸分析、内存对齐进入学习
4垃圾回收三色标记、写屏障、GC 调优进入学习
5性能分析pprof、trace、benchmark进入学习

第三阶段:Go Web 开发

> 目标:能够使用 Go 开发完整的 Web 应用
序号主题内容链接
1Gin 快速开始安装、路由、请求处理进入学习
2Gin 中间件中间件、参数校验、错误处理进入学习
3GORM 入门连接、模型定义、CRUD 操作进入学习
4GORM 进阶关联查询、事务、Hook进入学习

第四阶段:Go 分布式

> 目标:掌握分布式系统开发的核心技术
序号主题内容链接
1Redisgo-redis、缓存、分布式锁进入学习
2消息队列Kafka、RabbitMQ、消息模式进入学习
3gRPCProtobuf、服务定义、流式传输进入学习
4微服务服务发现、负载均衡、熔断降级进入学习

第五阶段:Go 工程化

> 目标:掌握生产级 Go 项目的工程实践
序号主题内容链接
1单元测试testing、mock、覆盖率进入学习
2日志系统zap、logrus、结构化日志进入学习
3配置管理viper、环境变量、配置中心进入学习
4容器部署Dockerfile、多阶段构建、优化进入学习
5云原生Kubernetes 部署、Helm、监控进入学习

面试突击

> 目标:掌握 Go 面试高频考点 全部面试内容请参考:Golang 八股文

为什么学 Go?

特点说明
简洁易学语法简单,关键字少,学习曲线平缓
编译速度快编译成原生机器码,无需虚拟机
并发支持原生支持协程(Goroutine),轻量高效
静态类型编译时类型检查,减少运行时错误
垃圾回收自动内存管理,无需手动释放
跨平台支持多平台编译
云原生首选Docker、Kubernetes 均用 Go 编写

Go 适用场景

场景说明
云原生容器编排、服务网格、云基础设施
微服务高性能 API、gRPC 服务
命令行工具CLI 工具、DevOps 工具
中间件消息队列、缓存、代理
区块链以太坊、Hyperledger Fabric

参考资料