11 KiB
11 KiB
tags, create time
| tags | create time | |||
|---|---|---|---|---|
|
2026-06-07 14:30 |
GolangStar — Go 语言进阶之路 · 知识库索引
概述
本索引整理自「Go 语言进阶之路」学习路线,覆盖 8 大知识板块,从入门到源码阅读、面试准备一站式闭环。请严格按以下顺序阅读,每完成一个板块再进入下一个。
[!tip] 阅读策略
- 语言基础 -> 并发编程:先掌握语法,再深入并发(Goroutine/Channel/Sync)
- 语言基础 <-> 语言原理:基础篇讲"怎么用",原理篇讲"为什么",配对阅读效果最佳
- 框架实战 可独立进行,但建议有基础篇铺垫后再上手
- 面试题库 作为复习检验工具,建议在对应原理篇完成后刷一遍
graph LR
root["GolangStar 学习路线"] --> p1["一、Go语言前景"]
root --> p2["二、环境准备"]
root --> p3["三、语言基础"]
root --> p4["四、并发编程"]
root --> p5["五、框架实战"]
root --> p6["六、语言原理"]
root --> p7["七、测试篇"]
root --> p8["八、面试题库"]
p3 --> p3a["入门语法"]
p3 --> p3b["复合类型"]
p3 --> p3c["高级特性"]
p6 --> p6a["底层原理"]
p6 --> p6b["运行时原理"]
style root fill:#4CAF50,color:#fff
style p3 fill:#2196F3,color:#fff
style p4 fill:#FF9800,color:#fff
style p6 fill:#9C27B0,color:#fff
style p8 fill:#F44336,color:#fff
快速导航
| 目标 | 直接跳转 |
|---|---|
| 从零开始 | 从 一、Go 语言前景 按序阅读 |
| 搭建环境 | hzh/GolangStar/Go环境搭建/Go环境搭建 |
| 查阅规范 | hzh/GolangStar/Go编码规范/Go编码规范 |
| 速查语法 | 三、语言基础(全部 18 小节) |
| 攻克并发 | 四、并发编程(10 个并发专题) |
| 动手框架 | 五、框架实战(Gin + GORM) |
| 深入源码 | 六、语言原理(13 篇源码解析) |
| 刷题检验 | 八、面试题库(12 套面试题) |
一、Go 语言前景 📗
了解 Go 的价值定位与发展趋势,回答「为什么学 Go」。
| # | 专题 | 文件 | 说明 |
|---|---|---|---|
| 1 | 应用场景分析 | hzh/GolangStar/Go语言前景/Go语言前景 | Cloud Native、微服务、CLI 工具等核心场景 |
| 2 | 为什么选择 Go | (同上) | 简洁语法、原生并发、高性能编译 |
| 3 | 发展趋势 | (同上) | Go 1.2x+ 演进方向与社区生态 |
二、环境准备 📘
搭建开发环境与编写规范,为高效编码打基础。
| # | 专题 | 文件 | 说明 |
|---|---|---|---|
| 1 | Go 环境搭建 | hzh/GolangStar/Go环境搭建/Go环境搭建 | goenv/gosup 安装、GOPROXY 配置 |
| 2 | Go 编码规范 | hzh/GolangStar/Go编码规范/Go编码规范 | golint/golangci-lint、格式化约定 |
三、语言基础 📙
Go 语法体系,从变量类型到控制流,再到函数式编程范式。
入门
| # | 专题 | 文件 | 说明 |
|---|---|---|---|
| 1 | 语言代码结构 | hzh/GolangStar/Go语言基础/Go语言代码结构 | package/import/main 三件套 |
| 2 | 命名规范 | hzh/GolangStar/Go语言基础/Go语言命名规范 | unexported、驼峰、缩写规则 |
| 3 | 变量 | hzh/GolangStar/Go语言基础/Go语言变量 | var/短声明/零值/盲点 |
| 4 | 常量 | hzh/GolangStar/Go语言基础/Go语言常量 | const/iota/类型常量 |
| 5 | 运算符 | hzh/GolangStar/Go语言基础/Go语言运算符 | 算术/比较/逻辑位运算/优先级 |
复合类型
| # | 专题 | 文件 | 说明 |
|---|---|---|---|
| 6 | 结构体 | hzh/GolangStar/Go语言基础/Go语言结构体 | struct 定义、嵌入、组合 |
| 7 | 数组与切片 | hzh/GolangStar/Go语言基础/Go语言数组与切片 | array vs slice、append/拷贝陷阱 |
| 8 | Map | hzh/GolangStar/Go语言基础/Go语言Map | 创建/增删改查/遍历顺序随机性 |
控制流
| # | 专题 | 文件 | 说明 |
|---|---|---|---|
| 9 | 条件语句 | hzh/GolangStar/Go语言基础/Go语言条件句 | if/switch/select(初识) |
| 10 | 循环 | hzh/GolangStar/Go语言基础/Go语言循环 | for 是唯一循环关键字 |
高级特性
| # | 专题 | 文件 | 说明 |
|---|---|---|---|
| 11 | 指针 | hzh/GolangStar/Go语言基础/Go语言指针 | &*/new/make 的区别 |
| 12 | 函数 | hzh/GolangStar/Go语言基础/Go语言函数 | 多返回值/命名返回/变参/闭包 |
| 13 | 方法 | hzh/GolangStar/Go语言基础/Go语言方法 | receiver 值接收者 vs 指针接收者 |
| 14 | 接口 | hzh/GolangStar/Go语言基础/Go语言接口 | 隐式实现、空接口、类型断言 |
| 15 | Error | hzh/GolangStar/Go语言基础/Go语言error | error 接口、errors.New、fmt.Errorf(%w) |
| 16 | Defer | hzh/GolangStar/Go语言基础/Go语言defer | LIFO 执行顺序、延迟计算 |
| 17 | 异常捕获 | hzh/GolangStar/Go语言基础/Go语言异常捕获 | panic/recover 机制 |
| 18 | 依赖管理 | hzh/GolangStar/Go语言基础/Go语言依赖管理 | go.mod/go.sum/mod tidy |
四、并发编程 📕
Go 的核心竞争力 —— 从 Goroutine 到完整并发模式设计。
| # | 专题 | 文件 | 说明 |
|---|---|---|---|
| 1 | 并发概述 | hzh/GolangStar/Go语言进阶/并发概述 | 共享内存并发理念、CSP 模型 |
| 2 | Goroutine | hzh/GolangStar/Go语言进阶/Goroutine | 轻量级线程、调度基础 |
| 3 | Channel | hzh/GolangStar/Go语言进阶/Channel | 有界/无界、单向、关闭语义 |
| 4 | Sync 同步原语 | hzh/GolangStar/Go语言进阶/Sync | Mutex/RWMutex/Once/WaitGroup/Pool |
| 5 | Select 多路复用 | hzh/GolangStar/Go语言进阶/Select | select/panic 空 select、超时模式 |
| 6 | Context 上下文 | hzh/GolangStar/Go语言进阶/Context | WithCancel/Timeout/Value、传播链 |
| 7 | 定时器 Timer/Ticker | hzh/GolangStar/Go语言进阶/定时器 | time.Timer/TimeTick 精确控制 |
| 8 | 协程池设计 | hzh/GolangStar/Go语言进阶/协程池 | worker pool 模式、任务队列 |
| 9 | 反射机制 | hzh/GolangStar/Go语言进阶/反射 | reflect.TypeOf/Value、Kind |
| 10 | 泛型编程 | hzh/GolangStar/Go语言进阶/范型 | 类型参数、约束、泛型限制 |
五、框架实战 📒
Gin + GORM 全栈开发能力。
| # | 专题 | 文件 | 说明 |
|---|---|---|---|
| 1 | Gin Web 框架 | hzh/GolangStar/Go语言框架/gin | 路由/中间件/JSON/表单/Middleware |
| 2 | GORM ORM 框架 | hzh/GolangStar/Go语言框架/gorm | Model 定义/CRUD/关联关系/事务 |
六、语言原理 📓
深入 runtime 源码,理解每一个关键字背后的机器行为。 建议搭配「语言基础」对应篇章配对阅读。
| # | 专题 | 文件 | 与基础篇对应 |
|---|---|---|---|
| 1 | 程序初始化过程 | hzh/GolangStar/Go语言原理/程序初始化 | import 流程 init() 执行顺序 |
| 2 | String 底层原理 | hzh/GolangStar/Go语言原理/string原理 | 不可变字符串、string bytes 转换开销 |
| 3 | Slice 底层原理 | hzh/GolangStar/Go语言原理/slice原理 | array-pointer-length 三字段、扩容策略 |
| 4 | Map 底层原理 | hzh/GolangStar/Go语言原理/map原理 | hash 数组、溢出桶、写时迁移 |
| 5 | Sync.Map 原理 | hzh/GolangStar/Go语言原理/sync.map原理 | read/dirty/amended 三表结构 |
| 6 | Channel 底层原理 | hzh/GolangStar/Go语言原理/channel原理 | hchan 结构、send/recv 全流程 |
| 7 | Context 底层原理 | hzh/GolangStar/Go语言原理/context原理 | cancel chain、value chain 实现 |
| 8 | Defer 执行原理 | hzh/GolangStar/Go语言原理/defer原理 | defer 栈、closedefer/opendefer |
| 9 | Interface 底层原理 | hzh/GolangStar/Go语言原理/interface原理 | itab/witab、空接口优化 |
| 10 | 逃逸分析 | hzh/GolangStar/Go语言原理/逃逸分析 | 栈 vs 堆分配决策 |
| 11 | GMP 调度模型 | hzh/GolangStar/Go语言原理/gmp调度原理 | P/L/M、work-stealing、系统线程 |
| 12 | 内存管理机制 | hzh/GolangStar/Go语言原理/内存管理 | mheap/mspan/mcentral/mcache |
| 13 | 垃圾回收算法 | hzh/GolangStar/Go语言原理/垃圾回收 | 三色标记 + 写屏障、混合写屏障 |
七、测试篇 📔
单元测、基准测试、表格驱动测试。
| # | 专题 | 文件 | 说明 |
|---|---|---|---|
| 1 | Go 语言单元测试 | hzh/GolangStar/Go语言单测/Go语言单测 | _test.go 约定、testing.T、assert 用法 |
| 2 | 基准测试 Benchmark | (同上) | b.N 循环、CPU profiling |
| 3 | 表格驱动测试 | (同上) | 一行用例覆盖多种边界 |
八、面试题库 📋
对应各模块的高频面试题,用于查漏补缺。 建议:学完对应原理篇后自行作答,再对照参考解析。
| # | 专题 | 文件 | 覆盖范围 |
|---|---|---|---|
| 1 | 基础语法面试题 | hzh/GolangStar/Go面试题库/基础面试题 | 变量/常量/类型/运算符/控制流 |
| 2 | Slice 相关面试题 | hzh/GolangStar/Go面试题库/Slice面试题 | append/copy/切片共享底层数组 |
| 3 | Map 相关面试题 | hzh/GolangStar/Go面试题库/Map面试题 | 遍历顺序/并发安全/底层扩容 |
| 4 | Channel 相关面试题 | hzh/GolangStar/Go面试题库/Channel面试题 | 缓冲/关闭/死锁场景 |
| 5 | Sync 同步面试题 | hzh/GolangStar/Go面试题库/Sync面试题 | Mutex/WaitGroup/Once 场景题 |
| 6 | Context 相关面试题 | hzh/GolangStar/Go面试题库/Context面试题 | 传递/取消/超时模式 |
| 7 | Interface 相关面试题 | hzh/GolangStar/Go面试题库/Interface面试题 | nil interface/类型断言/继承模拟 |
| 8 | 反射机制面试题 | hzh/GolangStar/Go面试题库/反射面试题 | TypeOf/Kind/setXX 权限 |
| 9 | GMP 调度面试题 | hzh/GolangStar/Go面试题库/GMP面试题 | 调度流程/steal/park |
| 10 | 内存管理面试题 | hzh/GolangStar/Go面试题库/内存管理面试题 | GC/逃逸/分配器 |
| 11 | 垃圾回收面试题 | hzh/GolangStar/Go面试题库/垃圾回收面试题 | 三色标记/写屏障/STW |
| 12 | 编程算法面试题 | hzh/GolangStar/Go面试题库/代码面试题 | 常见算法 Go 实现 |
学习进度追踪
[!tip] 自我检测清单
在每个板块完成后,尝试回答以下问题来检验学习效果:
- 能用一句话解释 Go 的并发模型吗?
- 能画出 slice 的底层结构并解释扩容规则吗?
- 能说清楚 map 遍历时序为何是随机的吗?
- 能手写一个简单的 channel 通信模式吗?
- 能解释 defer 的执行顺序和有名返回值的关系吗?
- 能描述 GMP 调度模型的协作方式吗?
- 能画出三色标记法的标记流程吗?
全部勾选后,建议进入面试题库模块进行实战检验!
关联笔记
- 本索引为整个 GolangStar 系列的总入口
- 每个子文档的底部均有"关联笔记"链接,方便交叉引用