Go
云原生系统编程
- 001入门Go 是什么:把语言做小,把工程做大从 Google 的三个工程痛点讲起——编译慢、依赖乱、新人上手难,建立 Go 的心智模型(编译型、垃圾回收、goroutine 内建),理解关键字少是特性、云原生事实标准的定位与一年两版的版本策略。
- 002入门工具链与环境搭建:一个 go 命令走天下装好 Go 并用 go version 验证;用 go mod init 建立现代模块并与 GOPATH 时代一句对照;跑通 go run、go build、go fmt、go test 四命令并核对预期输出;配好 VS Code 与 gopls,读懂两类新手必踩报错。
- 003入门基本语法:Hello Go 与强制的大括号从最小 main.go 出发学会包与 import、变量三式与零值、for 三形态与无括号的 if;附 unused import 真实报错、go vet 提示实录与四道练习。
- 004入门Go 函数与方法函数定义、多返回值、命名返回值、可变参数、闭包、init 函数、方法与接收者、函数选项与中间件模式——函数与方法专篇,接口见 060。
- 005中级Go 数据结构数组、切片底层原理、map 底层实现、struct、嵌套与组合、标签与 JSON 序列化。
- 006入门字符串与 UTF-8:为什么 len("你好") 是 6以"昵称被截出乱码"为主线学 Go 字符串:string 是只读字节序列、rune 是码点、len 与 RuneCountInString 的分野、range 的字节下标语义、拼接的 O(n^2) 陷阱与 strings.Builder、strconv 转换全套,附坑点、自检与练习。
- 007中级Go 接口与组合接口定义、隐式实现、空接口、类型断言、类型开关、接口组合、io.Reader/Writer、sort.Interface 与常见接口模式。
- 008中级Go 错误处理error 接口、errors.Is/As、自定义错误、panic/recover、错误包装、sentinel 错误与最佳实践。
- 009中级defer、panic 与 recover 详解延迟调用的执行时机、panic 传播与 recover 的正确姿势。
- 010中级错误处理进阶error接口、errors.Is/As、%w包装、panic/recover、Go 1.13+错误语义、错误链与生产级实践
- 011进阶Go 泛型Go 1.18+ 泛型、类型参数、约束、泛型函数与类型、类型推断、slices/maps/cmp 标准库包与泛型实际应用。
- 012中级Go 标准库导览核心标准包导览:io/bufio/fmt、os/filepath、net/http、encoding/json、time 与常用速查表——标准库入门地图;工具链专篇见 115。
- 013入门Go 工具链与构建go 命令全家桶:go test/vet/fmt/doc、构建标签与文件名约定、交叉编译、go work 多模块、GOTOOLCHAIN 版本管理、cgo 与 go:generate——构建与工具链专篇
- 014进阶Go 并发编程goroutine 原理、channel、select、sync 包、context 包、并发模式与竞态检测。
- 015进阶select 语句详解多路复用:default 分支、超时控制与退出广播。
- 016中级Context 详解context.Context接口、cancel传播、超时控制、值传递、最佳实践与陷阱
- 017进阶Channel 原理Channel底层实现:hchan结构、send/recv状态机、select实现、close语义与CSP模型
- 018进阶goroutine 与 channel 通信原理Go goroutine与channel通信原理详解。
- 019进阶GMP 调度模型:goroutine 是怎么被跑起来的以"服务搬进 2 核容器后延迟反升"为主线学 GMP:G/M/P 各自管什么、调度时机与 work stealing、系统调用 hand-off、GOMAXPROCS 在容器里的正确姿势、trace 与 schedtrace 观测,附坑点、自检与练习。
- 020进阶Goroutine 调度GMP调度模型
- 021进阶竞态检测与原子操作Go 竞态检测与原子操作详解:-race 原理、atomic 包、常见竞态模式与无锁编程实践。
- 022进阶并发模式Go并发模式详解:工作池、扇出扇入、管道。
- 023中级接口与类型断言Go接口与动态派发
- 024进阶反射reflect包深度剖析:Type/Value/Kind 三大核心、动态调用、性能优化、反射元编程、生产级应用与陷阱
- 025进阶反射实现通用函数:从手写校验器到泛型替代以"给团队 API 写一个 tag 驱动的参数校验器"为主线学 reflect:Type 与 Kind、读写字段、方法调用、通用 Map/Filter、泛型替代与性能账本,附坑点、自检与练习。
- 026进阶泛型详解Go 1.18+泛型:类型参数、约束、类型推断、GC shape stenciling实现、泛型算法与生产级实践
- 027中级切片原理Go 切片底层实现、SliceHeader 结构、扩容算法、内存布局、GC 交互与工程级最佳实践
- 028进阶Map 原理Go map底层实现:hmap结构、bucket、hash函数、扩容机制、并发安全与Go 1.24 Swiss Table
- 029进阶内存对齐结构体对齐与内存布局
- 030进阶内存逃逸分析Go内存逃逸分析详解:go build -gcflags="-m"。
- 031进阶垃圾回收与 GC 调优Go垃圾回收与GC调优详解:并发标记清除。
- 032进阶unsafe 与指针unsafe包与指针运算
- 033进阶包管理详解Go包管理详解:go mod replace、vendor。
- 034中级Go 新特性演进近年版本特性速览:泛型落地后的语言演进与升级实践。
- 035入门Go 与 JSONencoding/json详解
- 036中级Go 与数据库:连接池是怎么被榨干的以"上线半小时数据库连接耗尽"为主线学 database/sql:驱动选型与零依赖起步、Query/Exec 全家桶、事务模板、Context 超时传导、连接池四参数、NULL 处理与 GORM 选型,附坑点、自检与练习。
- 037入门ORM 与查询构建器database/sql 之上的数据访问层三流派:GORM 链式 API、sqlc 先写 SQL 后生成类型安全代码、ent 图谱式建模——同一套账户与转账场景三种实现对比,附选型决策表与练习
- 038中级Go 与测试:让上次的 bug 不再复发以"修过的 bug 一个月后复发"为主线学 go test:表驱动测试、子测试与并行、基准测试 b.Loop、httptest 与接口 mock、覆盖率、Go 1.24 测试工具箱(t.Chdir/synctest),附坑点、自检与练习。
- 039进阶单元测试与基准测试Go单元测试与基准测试详解:go test -bench。
- 040中级Go 与 FuzzingGo 1.18+ 原生 Fuzzing 框架:覆盖率引导、变异引擎、语料库管理与生产级实战
- 041入门Go 与日志slog与结构化日志
- 042中级Go 与配置管理:让测试环境连不上生产库以"测试环境连了生产数据库"为主线学 Viper:默认值与配置文件、环境变量覆盖、多环境合并、结构体映射与启动期校验、热加载的边界,附坑点、自检与练习。
- 043入门Go 与时间time包深度剖析:Time/Duration/Location 三大核心、单调时钟、时区处理、定时器、Ticker、性能优化与陷阱
- 044中级Go 与正则表达式Go 与正则表达式:regexp 包、RE2 语法、Thompson NFA 构造、Pike VM 算法、线性时间复杂度证明、跨引擎对比、性能优化、Unicode 支持与生产级最佳实践
- 045中级Go 与文件监控Go 与文件监控:fsnotify、inotify/kqueue/ReadDirectoryChangesW 跨平台机制、事件去重、递归监听、热重载与生产级最佳实践
- 046中级Go 与信号处理os/signal 与 syscall:从 POSIX 信号到 Go 优雅关闭的工程实践
- 047中级Go 与模板:把用户输入安全地渲染成页面以"歌单页面被 XSS 注入"为主线学 text/template 与 html/template:动作语法与管道、自定义函数、range 上下文与 $、布局复用、HTTP 服务端渲染与上下文感知转义,附坑点、自检与练习。
- 048中级Go 与加密:别把明文密码写进数据库以"用户注册接口要不要存明文密码"为主线学 crypto:bcrypt 密码存储、crypto/rand 与 rand.Text 令牌、AES-GCM 认证加密、HMAC 请求签名、PBKDF2/HKDF 密钥派生与算法选型口诀,附坑点、自检与练习。
- 049入门Go CLI 应用开发从 os.Args 到 flag 再到 cobra 的命令行演进、配置优先级合并、go:embed 打包静态资源——手写一个 frontmatter 校验 CLI(--check 与 --fix 子命令)的全过程
- 050中级Go 与 HTTP 客户端:接入一个不可靠的第三方 API以"接入需要鉴权、偶发 429 的第三方 API"为主线学 net/http 客户端:请求构建、分层超时设计、重试退避、连接池调优、流式与文件上传、httptest 测试,附坑点、自检与练习。
- 051中级Go 与 HTTP 服务器net/http与路由
- 052中级Go 与中间件Go HTTP 中间件:Handler/HandlerFunc 接口、洋葱模型、Chain 组合律、context 传播、企业级网关实战
- 053入门RESTful API 设计资源建模、统一响应与业务错误码、请求验证、版本化与幂等键:把「能跑的接口」升级为「好用的 API 契约」的设计篇,附完整订单 API 推演与练习
- 054中级Go 与 OAuth2OAuth2与JWT
- 055进阶Go 与限流Go限流与熔断详解:令牌桶、漏桶、滑动窗口、分布式限流、熔断器、自适应限流与工程实践
- 056进阶Go 与分布式追踪:一次请求到底慢在哪一跳以"接口 P99 偶发 3 秒但日志看不出慢在哪"为主线学 OpenTelemetry:Span 与父子链、stdout 导出跑通第一段链路、otelhttp/otelgrpc 一行接入、采样策略、trace_id 串起 slog 日志,附坑点、自检与练习。
- 057入门服务指标与可观测性可观测性第三支柱:Prometheus client_golang 的四种指标类型选型、/metrics 端点与中间件接入、Histogram 分桶看 P99、命名与标签基数陷阱——给限流服务与服务端 handler 挂上指标的全过程
- 058中级Go 与 gRPC:两个服务之间说同一种话以"订单服务调用户服务"为主线学 gRPC:proto 定义与代码生成、grpc.NewClient 与超时纪律、四种通信模式、拦截器、状态码错误处理、Protobuf 演进纪律与 grpcurl 调试,附坑点、自检与练习。
- 059中级Go 与 GraphQL:前端要什么字段,由前端说了算以"移动端为三个字段打一个新端点"为主线学 gqlgen:Schema 先行与代码生成、Resolver 树、N+1 与 DataLoader、订阅与认证、错误结构与非空语义、适用边界判断,附坑点、自检与练习。
- 060中级Go 与消息队列:邮件服务挂了,注册也不能挂以"SMTP 超时拖垮注册接口"为主线学 NATS 与 Kafka:发布订阅、队列组负载均衡、JetStream 持久化、偏移量与手动提交、幂等消费与优雅关闭、客户端选型(CGO 之坑),附坑点、自检与练习。