🐹

Go 语言实战

语言核心 + 底层揭秘 + 工程实战 + AI 应用四位一体。深入 GMP 调度器、GC、Channel 源码;以 yiteai-dev-server 真实代码为案例,每章一个完整项目;系统讲解 Go 做 AI Agent、MCP Server、RAG 管道。53 章,市面唯一同时覆盖底层、工程和 AI 的 Go 书。

53
章节
免费
永久
开始阅读 →
目录
Ch01
Go 的设计哲学:少即是多
诞生背景、与 C++/Java/Rust 的定位差异
Ch02
开发环境与工具链
go build/test/vet/fmt/mod、项目结构约定
Ch03
基础类型与控制流
整数/浮点/字符串/布尔、零值设计
Ch04
函数、闭包与 defer
多返回值、闭包陷阱、defer 执行顺序
Ch05
复合类型:数组、切片与 map
append 扩容行为、nil slice vs empty slice
Ch06
结构体、方法与接口
值接收者 vs 指针接收者、接口隐式实现
Ch07
错误处理:error、panic 与 recover
错误包装、errors.Is/As、sentinel error
Ch08
泛型:从 interface{} 到类型参数
类型参数、约束、何时该用泛型
Ch09
Goroutine:轻量级并发
goroutine 创建与调度、泄漏检测
Ch10
Channel:goroutine 间的通信
有缓冲/无缓冲、select、fan-in/fan-out/pipeline
Ch11
sync 包:Mutex、WaitGroup、Once、Pool
互斥锁、对象复用、sync.Map 适用场景
Ch12
Context:取消、超时与值传递
WithCancel/WithTimeout/WithValue 最佳实践
Ch13
Go 编译器:从源码到二进制
AST→SSA→机器码、逃逸分析、内联优化
Ch14
GMP 调度器:goroutine 如何被执行
G/M/P 模型、work stealing、抢占式调度
Ch15
内存分配器:tcmalloc 在 Go 中的实现
mspan/mcache/mcentral/mheap、逃逸到堆的条件
Ch16
垃圾回收:三色标记与写屏障
三色不变式、GOGC 调优、软内存限制
Ch17
Channel 源码:发送、接收与 select
hchan 结构体、环形缓冲区、sudog 等待队列
Ch18
Map 源码:哈希表、扩容与并发安全
hmap/bmap、渐进式扩容、sync.Map 实现
Ch19
Slice 源码:扩容策略与内存陷阱
SliceHeader、append 扩容公式、共享底层数组陷阱
Ch20
Interface 底层:iface、eface 与类型断言
接口二元组、itab 缓存、类型断言性能
Ch21
Reflect 与 unsafe:元编程的力量与风险
reflect.Type/Value、unsafe.Pointer 规则
Ch22
CGo:与 C 共舞的代价
CGo 调用开销、内存管理边界
Ch23
网络模型:netpoll 与 epoll 的封装
Go 网络 I/O 模型、与 Nginx/Node.js 对比
Ch24
性能分析:pprof、trace 与 benchmark
CPU/内存 profiling、go tool trace、优化模式
Ch25
项目架构与依赖注入
Config→Server→Handler 启动链
Ch26
Web 服务与路由设计
Gin 框架、路由分组、RESTful 设计
Ch27
中间件模式
限流、日志、CORS、安全头中间件
Ch28
模板渲染与 SEO
html/template、sitemap 生成、JSON-LD
Ch29
爬虫系统:并发与限速
Worker Pool、令牌桶限速、错误重试
Ch30
CLI 工具开发
flag/cobra、进度报告、子命令设计
Ch31
IP 查询服务:二进制协议解析
IP2Location BIN 解析、CGo 集成
Ch32
DNS 服务器:UDP 网络编程
DNS 协议、goroutine-per-request
Ch33
WebSocket 实时通信
长连接管理、心跳、广播模式
Ch34
TLS 指纹检测
crypto/tls 定制、JA3/JA4 指纹
Ch35
后台任务与优雅退出
定时器、signal 处理、graceful shutdown
Ch36
实现一个 HTTP 服务器(不用框架)
net/http 源码、TCP 管理、keep-alive
Ch37
实现一个 TCP 代理
io.Copy 双向转发、连接池、超时处理
Ch38
实现一个 Redis 客户端
RESP 协议解析、连接池、Pipeline
Ch39
实现一个消息队列
持久化、发布订阅、消费者组
Ch40
实现一个简易容器
namespace/cgroup、进程隔离
Ch41
实现一个简易数据库
B+Tree 存储引擎、WAL、MVCC
Ch42
实现一个 RPC 框架
Protobuf 序列化、服务注册、负载均衡
Ch43
实现一个 Shell
os/exec、管道、信号处理
Ch44
代码生成与静态分析
go/ast、go generate、自定义 Linter
Ch45
可观测性:日志、指标与链路追踪
zap 日志、Prometheus、OpenTelemetry
Ch46
数据库访问:SQL、ORM 与连接池
database/sql、sqlx vs GORM、N+1 问题
Ch47
认证与安全
JWT、OAuth2、bcrypt、CSRF 防护
Ch48
构建与部署
多阶段 Docker、交叉编译、systemd、CI/CD
Ch49
调用 LLM API:流式响应与错误处理
Claude/OpenAI SDK、SSE 流式解析、Token 管理
Ch50
构建 AI Agent:Tool Use 与多轮对话
Function Calling、工具分发、Agent 主循环
Ch51
构建 MCP Server
MCP 协议、JSON-RPC over stdio、Go 实现
Ch52
RAG 管道:检索增强生成
文本分块、Embedding API、向量存储
Ch53
向量搜索引擎:从零实现 HNSW
HNSW 算法 Go 实现、近似最近邻

💬 留言讨论