很多人学 Go 的路线是:
Gin → Gorm → Redis → Kubernetes
学了一堆框架,却始终停留在 CRUD 工程师阶段。
而真正拉开差距的,往往不是会不会用框架,而是有没有读过 Go 的核心源码。
Go 官方源码超过 200 万行,但真正值得每个 Go 程序员反复阅读的,可能只有十几个文件。
今天分享我认为最值得读的 10 段源码。
第一层:写出更好的 Go 代码
① strings.Builder
slice 扩容 内存复用 零拷贝
② sync.Once
CAS Atomic Double Check
③ context
ctx, cancel := context.WithCancel(...)第二层:理解高并发
④ sync.Map
⑤ net/http
Gin Echo Kratos Fiber
⑥ database/sql
第三层:看见 Runtime
⑦ channel
环形队列 等待队列 goroutine 调度
⑧ map
为什么不能并发写 为什么扩容不是一次完成 为什么遍历顺序是随机的
⑨ GMP 调度器
第四层:工程大师课
⑩ Gin Router
Trie Radix Tree Path Compression
最后
context.go chan.go proc.go
夜雨聆风