来源书籍
Go语言入门到实战(共3册)
编程语言类
类别清单覆盖
9/9
全书概览
《Go语言入门到实战(共3册)》读书笔记总览
v4 重跑说明
本目录已按 book-notes v4 规则做强制重跑迁移:保留原有卡片取材,补齐证据链字段、统一章节进度字段,并按命中类别执行清单核对。
阶段一:整体评级
- 书名:《Go语言入门到实战(共3册)》
- 作者:陈剑煜、黄靖钧、雨痕
- 出版时间:2020-05-31
- Skill 版本:v4
- 类别:编程语言类
- 四象限结论:工程实践(高信息浓度 + 低到中等稳定性)
评级理由
这套合集同时包含三种密度不同的内容:《Go语言编程之旅》偏项目实战,围绕 Cobra、Gin、gRPC、WebSocket、进程内缓存、pprof、trace、Go modules、panic/recover 等主题展开;《Go语言编程入门与实战技巧》覆盖 Go 的程序结构、数据类型、函数、复合类型、包、结构体、方法、接口、反射、并发、测试与内存管理;《Go语言学习笔记》进一步深入类型、函数、切片、字典、接口执行机制、并发、包结构、反射、工具链以及运行时源码中的内存分配、垃圾回收、调度器、通道、defer、finalizer 和 sync.Pool。
语言语义、并发模型、接口机制、GC、调度器和通道等内容具有较高稳定性和信息浓度,能解释 Go 为什么以简洁语法、组合、CSP 风格并发和运行时调度作为核心设计。但合集也有大量特定工具、框架、命令和项目步骤,例如 Gin、Swagger、Jaeger、gRPC、Docker/Kubernetes、具体 Go modules 命令和历史版本行为,这些内容会随生态演进而变化。因此整体归为“工程实践”,而不是纯粹的“经典原理”。
阶段二:章节进度
| 章节号 | 章节标题 | 精读/略读 | 状态(pending/done) | 卡片数 |
|---|---|---|---|---|
| 1 | Go语言编程之旅:第1章 命令行应用:打造属于自己的工具集 | 精读 | done | 2 |
| 2 | Go语言编程之旅:第2章 HTTP应用:写一个完整的博客后端 | 精读 | done | 4 |
| 3 | Go语言编程之旅:第3章 RPC应用:启动你的RPC服务 | 精读 | done | 5 |
| 4 | Go语言编程之旅:第4章 WebSocket应用:聊天室 | 精读 | done | 2 |
| 5 | Go语言编程之旅:第5章 进程内缓存 | 精读 | done | 3 |
| 6 | Go语言编程之旅:第6章 Go语言中的大杀器 | 精读 | done | 3 |
| 7 | Go语言编程之旅:附录A Go modules的入门和使用 | 精读 | done | 3 |
| 8 | Go语言编程之旅:附录B goroutine与panic、recover的小问题 | 精读 | done | 1 |
| 9 | Go语言编程之旅:附录C Go在容器运行时要注意的细节 | 略读 | done | 0 |
| 10 | Go语言编程之旅:附录D 让Go“恐慌”的十种方法 | 精读 | done | 1 |
| 11 | Go语言编程入门与实战技巧:第1章 认识Go语言 | 精读 | done | 2 |
| 12 | Go语言编程入门与实战技巧:第2章 程序结构 | 精读 | done | 2 |
| 13 | Go语言编程入门与实战技巧:第3章 基础数据类型 | 精读 | done | 3 |
| 14 | Go语言编程入门与实战技巧:第4章 流程控制 | 略读 | done | 0 |
| 15 | Go语言编程入门与实战技巧:第5章 函数 | 精读 | done | 4 |
| 16 | Go语言编程入门与实战技巧:第6章 复合数据类型 | 精读 | done | 3 |
| 17 | Go语言编程入门与实战技巧:第7章 包 | 精读 | done | 2 |
| 18 | Go语言编程入门与实战技巧:第8章 结构体与方法 | 精读 | done | 3 |
| 19 | Go语言编程入门与实战技巧:第9章 接口与反射 | 精读 | done | 3 |
| 20 | Go语言编程入门与实战技巧:第10章 并发编程 | 精读 | done | 4 |
| 21 | Go语言编程入门与实战技巧:第11章 网络编程 | 略读 | done | 0 |
| 22 | Go语言编程入门与实战技巧:第12章 I/O编程 | 略读 | done | 0 |
| 23 | Go语言编程入门与实战技巧:第13章 文件处理 | 略读 | done | 0 |
| 24 | Go语言编程入门与实战技巧:第14章 安全与测试 | 精读 | done | 3 |
| 25 | Go语言编程入门与实战技巧:第15章 内存管理 | 精读 | done | 3 |
| 26 | Go语言学习笔记:第1章 概述 | 精读 | done | 2 |
| 27 | Go语言学习笔记:第2章 类型 | 精读 | done | 4 |
| 28 | Go语言学习笔记:第3章 表达式 | 精读 | done | 1 |
| 29 | Go语言学习笔记:第4章 函数 | 精读 | done | 4 |
| 30 | Go语言学习笔记:第5章 数据 | 精读 | done | 5 |
| 31 | Go语言学习笔记:第6章 方法 | 精读 | done | 2 |
| 32 | Go语言学习笔记:第7章 接口 | 精读 | done | 3 |
| 33 | Go语言学习笔记:第8章 并发 | 精读 | done | 3 |
| 34 | Go语言学习笔记:第9章 包结构 | 精读 | done | 2 |
| 35 | Go语言学习笔记:第10章 反射 | 精读 | done | 3 |
| 36 | Go语言学习笔记:第11章 测试 | 精读 | done | 2 |
| 37 | Go语言学习笔记:第12章 工具链 | 精读 | done | 2 |
| 38 | Go语言学习笔记:第13章 准备 | 略读 | done | 0 |
| 39 | Go语言学习笔记:第14章 引导 | 略读 | done | 0 |
| 40 | Go语言学习笔记:第15章 初始化 | 精读 | done | 1 |
| 41 | Go语言学习笔记:第16章 内存分配 | 精读 | done | 4 |
| 42 | Go语言学习笔记:第17章 垃圾回收 | 精读 | done | 4 |
| 43 | Go语言学习笔记:第18章 并发调度 | 精读 | done | 5 |
| 44 | Go语言学习笔记:第19章 通道 | 精读 | done | 3 |
| 45 | Go语言学习笔记:第20章 延迟 | 精读 | done | 3 |
| 46 | Go语言学习笔记:第21章 析构 | 精读 | done | 1 |
| 47 | Go语言学习笔记:第22章 缓存池 | 精读 | done | 1 |
章节划分理由
项目实战部分中,命令行、HTTP、RPC、WebSocket、缓存、性能诊断、模块、panic/recover 等章节包含可迁移的工程抽象或 Go 语言特性,标为精读;容器运行时注意事项篇幅短且主要是部署环境提醒,标为略读。入门语法部分中,程序结构、类型、函数、复合数据、包、结构体/方法、接口/反射、并发、测试和内存管理都涉及语言模型或工程机制,标为精读;流程控制、网络、I/O 和文件处理以基础语法或操作示例为主,标为略读。学习笔记部分中,语言详解和运行时源码章节信息浓度高,除准备、引导两章偏铺垫外,其余均标为精读。
待关联术语
| 术语名 | 出现章节 | 一句话语境 |
|---|---|---|
| OAuth 2.0 | 2 | 与 JWT 一起作为 API 访问控制方案被对比提及 |
| Swagger/OpenAPI | 2、3 | 用于接口文档生成与展示,书中以工具接入为主 |
| Jaeger | 2、3 | 作为链路追踪实现被用于项目示例 |
| Docker | 1、9 | 作为 Cobra 使用案例和容器运行环境被提及 |
| Kubernetes | 1 | 作为 Cobra 构建的著名 Go 项目被提及 |
| etcd | 1 | 作为 Cobra 构建的著名 Go 项目被提及 |
| httprouter | 2 | 作为 Gin 路由基础被提及 |
| Martini | 2 | 作为 Gin API 风格对比对象被提及 |
| TCMalloc | 25、41 | 作为 Go 内存分配器设计来源被提及 |
| CSP | 44 | 作为 Go channel 并发模型背景被提及 |
引用文献
| 标题 | 类型 | 出现章节 | 一句话语境 |
|---|---|---|---|
| Cobra | 源码项目 | 1 | 作为构建 CLI 命令和子命令的开源项目展开使用 |
| Gin | 框架 | 2 | 作为博客后端 HTTP 框架被展开使用 |
| gRPC | 框架 | 3 | 作为 Go RPC 服务框架被展开使用 |
| Protobuf | 框架 | 3 | 作为 gRPC 的 IDL 和序列化方案被展开使用 |
| groupcache | 源码项目 | 5 | 作为 FIFO/LRU 数据结构设计参考被提及 |
| Go runtime | 源码项目 | 25、40-47 | 作为内存、GC、调度、通道、defer、sync.Pool 的源码剖析对象 |
实践卡进度
| 序号 | 实践标题 | 实践方式 | 状态 | 关联章节 | 产出 |
|---|---|---|---|---|---|
| 1 | 实现一个真实gRPC双向流服务并用拦截器隔离日志 | 真实任务 | done | gRPC相关章节 | 双向流服务代码与拦截器日志记录 |
| 2 | 用sync.Pool实测高频对象分配场景下的性能提升 | 实现深读 | done | sync.Pool/GC相关章节 | 不同并发度基准测试对照表 |
类别清单核对
| 维度 | 覆盖状态(已覆盖/补充生成/未覆盖) | 关联卡片标题或未覆盖理由 |
|---|---|---|
| 类型系统 | 已覆盖 | [[Go定位服务端]]、[[整型宽度影响移植]]、[[变量是存储位置]]、[[引用类型共享底层]]、[[类型转换不改本体]]、[[自定义类型表达语义]] |
| 内存管理模型 | 已覆盖 | [[运行时自主管内存]]、[[逃逸分析降GC压力]]、[[栈分配减轻GC]]、[[自主管理避系统调用]]、[[MCache走本地快路]]、[[GC目标压缩STW]] |
| 并发/并行模型 | 已覆盖 | [[Goroutine轻量并发]]、[[Channel表达通信]]、[[并发不等于并行]]、[[GMP拆开执行职责]]、[[P控制并发配额]]、[[Channel承载CSP]] |
| 错误处理机制 | 已覆盖 | [[Panic不是异常机制]]、[[Recover只救同栈]]、[[Panic暴露非法状态]]、[[错误处理偏显式]]、[[PanicRecover依赖Defer]] |
| 编译/执行模型 | 已覆盖 | [[自举改变工具链]]、[[交叉编译是内建能力]]、[[运行时先搭现场]]、[[Trace观察调度过程]] |
| 模块/包与命名空间设计 | 已覆盖 | [[Modules接管依赖边界]]、[[语义化版本表达兼容]]、[[最小版本选择保守]]、[[包是可见性边界]]、[[工作空间约定构建]] |
| 语言设计哲学与取舍 | 已覆盖 | [[Go哲学重简洁]]、[[实时性不是强项]]、[[组合替代继承]]、[[多返回值直面错误]]、[[流控制贵在够用]] |
| 元编程/反射/宏能力 | 已覆盖 | [[ReflectType看类型]]、[[ReflectValue改值]]、[[反射有性能代价]];本书实质展开反射,Go 不提供传统宏系统 |
| 性能特性与其代价 | 已覆盖 | [[Pprof面向采样诊断]]、[[逃逸决定堆栈归属]]、[[Defer热路径有代价]]、[[写屏障维护标记]]、[[Finalizer不是析构保证]]、[[Pool降低临时对象压力]] |
章节与卡片
01 Go语言编程之旅:第1章 命令行应用:打造属于自己的工具集
- Flag解析命令参数 普通读书笔记卡
- 子命令组织工具集 普通读书笔记卡
02 Go语言编程之旅:第2章 HTTP应用:写一个完整的博客后端
03 Go语言编程之旅:第3章 RPC应用:启动你的RPC服务
- IDL稳定RPC契约 普通读书笔记卡
- 流式RPC解决长交互 普通读书笔记卡
- 拦截器隔离横切逻辑 普通读书笔记卡
- Metadata承载上下文 普通读书笔记卡
- 注册发现解耦地址 普通读书笔记卡
04 Go语言编程之旅:第4章 WebSocket应用:聊天室
- WebSocket保持双向连接 普通读书笔记卡
- 聊天室映射并发结构 普通读书笔记卡
05 Go语言编程之旅:第5章 进程内缓存
06 Go语言编程之旅:第6章 Go语言中的大杀器
- Pprof面向采样诊断 普通读书笔记卡
- Trace观察调度过程 普通读书笔记卡
- 逃逸决定堆栈归属 普通读书笔记卡
07 Go语言编程之旅:附录A Go modules的入门和使用
- Modules接管依赖边界 普通读书笔记卡
- 语义化版本表达兼容 普通读书笔记卡
- 最小版本选择保守 普通读书笔记卡
08 Go语言编程之旅:附录B goroutine与panic、recover的小问题
- Recover只救同栈 普通读书笔记卡
10 Go语言编程之旅:附录D 让Go“恐慌”的十种方法
- Panic暴露非法状态 普通读书笔记卡
11 Go语言编程入门与实战技巧:第1章 认识Go语言
12 Go语言编程入门与实战技巧:第2章 程序结构
13 Go语言编程入门与实战技巧:第3章 基础数据类型
15 Go语言编程入门与实战技巧:第5章 函数
- 函数是复用单元 普通读书笔记卡
- 闭包携带环境 普通读书笔记卡
- Defer保障清理 普通读书笔记卡
- Panic不是异常机制 普通读书笔记卡
16 Go语言编程入门与实战技巧:第6章 复合数据类型
17 Go语言编程入门与实战技巧:第7章 包
- 包是可见性边界 普通读书笔记卡
- Init承载初始化副作用 普通读书笔记卡
18 Go语言编程入门与实战技巧:第8章 结构体与方法
19 Go语言编程入门与实战技巧:第9章 接口与反射
20 Go语言编程入门与实战技巧:第10章 并发编程
- Goroutine轻量并发 普通读书笔记卡
- Channel表达通信 普通读书笔记卡
- Select管理多路等待 普通读书笔记卡
- 锁保护共享内存 普通读书笔记卡
24 Go语言编程入门与实战技巧:第14章 安全与测试
25 Go语言编程入门与实战技巧:第15章 内存管理
26 Go语言学习笔记:第1章 概述
27 Go语言学习笔记:第2章 类型
28 Go语言学习笔记:第3章 表达式
- 流控制贵在够用 普通读书笔记卡
29 Go语言学习笔记:第4章 函数
- 函数是最小模块 普通读书笔记卡
- 多返回值直面错误 普通读书笔记卡
- Defer注册退出动作 普通读书笔记卡
- 错误处理偏显式 普通读书笔记卡
30 Go语言学习笔记:第5章 数据
31 Go语言学习笔记:第6章 方法
32 Go语言学习笔记:第7章 接口
- 接口是调用契约 普通读书笔记卡
- Itab保存动态类型 普通读书笔记卡
- 类型转换恢复具体值 普通读书笔记卡
33 Go语言学习笔记:第8章 并发
- 并发不等于并行 普通读书笔记卡
- Channel解除阻塞 普通读书笔记卡
- 共享Map需同步 普通读书笔记卡
34 Go语言学习笔记:第9章 包结构
35 Go语言学习笔记:第10章 反射
- ReflectType看类型 普通读书笔记卡
- ReflectValue改值 普通读书笔记卡
- 反射有性能代价 普通读书笔记卡
36 Go语言学习笔记:第11章 测试
37 Go语言学习笔记:第12章 工具链
40 Go语言学习笔记:第15章 初始化
- 运行时先搭现场 普通读书笔记卡
41 Go语言学习笔记:第16章 内存分配
- 自主管理避系统调用 普通读书笔记卡
- MCache走本地快路 普通读书笔记卡
- MCentral做跨线程平衡 普通读书笔记卡
- MHeap管理大块内存 普通读书笔记卡
42 Go语言学习笔记:第17章 垃圾回收
43 Go语言学习笔记:第18章 并发调度
44 Go语言学习笔记:第19章 通道
- Channel承载CSP 普通读书笔记卡
- Hchan是通道实体 普通读书笔记卡
- Select做多路选择 普通读书笔记卡
45 Go语言学习笔记:第20章 延迟
- Defer保证异常清理 普通读书笔记卡
- Defer热路径有代价 普通读书笔记卡
- PanicRecover依赖Defer 普通读书笔记卡
46 Go语言学习笔记:第21章 析构
- Finalizer不是析构保证 普通读书笔记卡
47 Go语言学习笔记:第22章 缓存池
- Pool降低临时对象压力 普通读书笔记卡
相关主题
暂无公开主题。