| Ch1 课程介绍 | 1-1 课程导读 | — | 跳过 |
| 1-2 安装与环境 | 001.md > GOPATH、环境变量 | 已覆盖 |
| Ch2 基础语法 | 2-1 变量定义 | 001.md > 基本语法、内建类型、强制类型转换、常量 | 已覆盖 |
| 2-4 条件语句 | 001.md > if、switch | 已覆盖 |
| 2-5 循环 | 001.md > for | 已覆盖 |
| 2-6 函数 | 001.md > 函数、指针 | 已覆盖 |
| Ch3 内建容器 | 3-1 数组 | 001.md > 数组 | 已覆盖 |
| 3-3 切片的操作 | 001.md > 切片Slice(reslice/append/copy/cap扩容) | 已覆盖 |
| 3-5 Map例题 | 001.md > Map + 最长不重复子串实例 | 已覆盖 |
| Ch4 面向对象 | 4-1 结构体和方法 | 002.md > 结构体、方法、TreeNode、封装、Queue | 已覆盖 |
| Ch5 接口 | 5-1 duck typing的概念 | 002.md > 接口、duck typing、Retriever示例 | 已覆盖 |
| 5-2 接口的定义和实现 | 002.md > 接口变量、Type Assertion/Switch | 已覆盖 |
| 5-4 接口的组合 | 002.md > 组合接口概念(简略) | 已覆盖 |
| 5-5 常用系统接口 | 002.md > Stringer/Reader/Writer | 已覆盖 |
| Ch6 函数式编程 | 6-1 函数式编程 | 002.md > 闭包/斐波那契 + 006_函数式编程.md | 已补充 |
| 6-2 函数式编程例一 | 002.md > TraverseFunc + 006_函数式编程.md | 已补充 |
| Ch7 错误处理 | 7-2 错误处理概念 | 002.md > error类型、PathError | 已覆盖 |
| 7-3 服务器统一出错处理 | 002.md > errWrapper、错误分类处理 | 已覆盖 |
| 7-5 服务器统一出错处理2 | 002.md > userError接口、用户/系统错误分离 | 已覆盖 |
| Ch8 测试 | 8-1 测试 | 003.md > 表格驱动测试 | 已覆盖 |
| 8-2 代码覆盖率和性能测试 | 编程基础/0009_testing详解.md | 已补充 |
| 8-3 使用pprof进行性能调优 | Go工程师体系课/020.md(pprof) | 已补充 |
| 8-4 测试http服务器(上) | 编程基础/0009_testing详解.md > httptest | 已补充 |
| 8-5 测试http服务器(下) | 同上 | 已补充 |
| 8-6 生成文档和示例代码 | 007_godoc与代码生成.md | 已补充 |
| 8-7 测试总结 | 编程基础/0009_testing详解.md | 已补充 |
| Ch9 Goroutine | 9-1 (goroutine基础) | 004.md > goroutine原理、协程vs线程、切换点 | 已覆盖 |
| 9-2 go语言的调度器 | 008_GMP调度器与Go设计哲学.md | 已补充 |
| Ch10 Channel | 10-2 使用Channel等待任务结束 | 004.md > done channel、WaitGroup | 已覆盖 |
| 10-3 使用Channel进行树的遍历 | 004.md > TraverseWithChannel | 已覆盖 |
| 10-4 用select进行调度 | 004.md > select、超时、Ticker、数据缓存队列 | 已覆盖 |
| Ch11 http标准库 | 11-1 http标准库 | 005.md > http客户端、User-Agent | 已覆盖 |
| Ch12 迷宫算法 | 12-1 迷宫算法 | 005.md > 广度优先算法、point结构体 | 已覆盖 |
| Ch13 爬虫项目 | 13-1 爬虫项目介绍 | 005.md > 技术选型、爬虫库 | 已覆盖 |
| 13-2 总体算法 | 005.md > Fetcher→Parser架构 | 已覆盖 |
| Ch14 单任务爬虫 | 14-1 获得初始页面内容 | 005.md > http.Get+转码+正则 | 已覆盖 |
| 14-2 正则表达式 | 005.md > regexp.MustCompile | 已覆盖 |
| 14-3 提取城市和url | 005.md > printCityList | 已覆盖 |
| 14-4 单任务版爬虫的架构 | 005.md > engine/fetcher/model | 已覆盖 |
| 14-5 Engine与Parser | 005.md | 已覆盖 |
| 14-6 测试CityListParser | 005.md | 已覆盖 |
| 14-8 用户信息解析器(下) | 005.md | 已覆盖 |
| Ch15 并发爬虫 | 15-1 并发版爬虫架构 | 005.md > Worker架构图 | 已覆盖 |
| 15-2 简单调度器 | 005.md > Scheduler实现1(公用输入) | 已覆盖 |
| 15-3 并发调度器 | 005.md > 实现2(request+worker双队列) | 已覆盖 |
| 15-5 重构和总结 | 005.md > url去重 | 已覆盖 |
| 15-6 更多城市 | 005.md | 已覆盖 |
| Ch16 Docker+ES | 16-1 ItemSaver的架构 | 005.md > ItemSaver、goroutine提交 | 已覆盖 |
| 16-2 Docker和ElasticSearch介绍 | 005.md > docker run ES | 已覆盖 |
| 16-4 ElasticSearch入门 | 005.md > REST接口、index/type/id | 已覆盖 |
| 16-5 向ES存储数据 | 005.md > olivere/elastic客户端 | 已覆盖 |
| 16-8 重构与运行 | 005.md | 已覆盖 |
| 16-9 标准模板库介绍 | 005.md > html/template(简略) | 已覆盖 |
| 16-10 实现前端展示页面 | 005.md | 已覆盖 |
| 16-11 完善前端展示 | 005.md | 已覆盖 |
| Ch17 分布式爬虫 | 17-1 分布式系统简介 | 005.md > 分布式vs微服务、消息传递 | 已覆盖 |
| 17-4 ItemSaver服务 | 005.md > jsonRPC server/client | 已覆盖 |
| 17-5 整合ItemSaver服务 | 005.md | 已覆盖 |
| 17-7 实现爬虫服务 | 005.md | 已覆盖 |
| 17-8 完整分布式爬虫的运行 | 005.md | 已覆盖 |
| 17-10 实战项目总结 | 005.md > 分布式架构总结 | 已覆盖 |
| Ch18 课程总结 | 18-1 体会Go语言的设计 | 008_GMP调度器与Go设计哲学.md | 已补充 |
| 18-2 课程总结 | 同上 | 已补充 |