
极客时间 Go 实战训练营1期
来自 极客时间·免费领取学习资源
6,668 领取 · 5,800 收藏更新于 2026年9月20日
这份资料来自极客时间2026年的付费VIP课,内容以视频为主,对应《极客时间 Go 实战训练营1期》。官网需要单独购买,有集上可以免费领取。
本套课程来自极客时间 Go 实战训练营1期。本套课程文件总计46.9G,附课程相关资料
想转行Go工程师的人,总面临这些问题
Go基础语法虽好学,但缺乏实战经验,无法应用到实际工作
缺乏企业实际应用场景,不知道如何发挥Go的核心优势
对于框架和中间件,不知道核心原理,会用不会写
代码质量差,设计品味低,需要了解更多开源代码实例
自学有困难,缺乏系统的学习体系和高效的学习方法
适合人群
工作经验在1-3年的初级Go开发工程师
从事其他语言,想转行做Go开发工程师
对中间件和开源框架不太熟悉的Go开发工程师
想系统提升技术水平的Go开发工程师
课程目录
- 01 学习手册
- 暂无学习内容
- 02 Git & GitHub 操作指南
- 1. 为什么要使用 Git&GitHub[选学]
- 2. 什么是版本控制?[选学]
- 3. 安装 Git、初始化仓库并做最简单的配置[选学]
- 4. 在Windows系统上安装Git[选学]
- 5. 完成一个最简单的Git操作流程:工作区、暂存区和仓库[选学]
- 6. 将本地仓库同步到远程GitHub仓库[选学]
- 03 前置工作:Go 开发环境搭建指南
- 资料
- Mac 环境安装
- Windows 环境安装
- 2.macOS系统下的安装步骤[选学]
- 3.Windows系统下的安装步骤[选学]
- 04 8 小时上手 Go 语言
- 资料
- 8h上手Go语言课件合集
- Go+基本语法和+Web+框架起
- 极时间 Go 初级工程师(2)type 定义与 Server 抽象
- 极时间 Go 初级工程师(3)- 错误处理与简单路由树实现
- 极时间 Go 初级工程师(4)- 并发编程 文件操作与泛型
- 1.Go 基本语法和 Web 框架起步[选学]
- 2.type 定义与 Server 抽象[选学]
- 3.错误处理与简单路由树实现[选学]
- 4.并发编程、文件操作与泛型[选学]
- 05 开营典礼
- 1.Go 实战 1 期开营典礼[选学]
- 06 Go 实战训练营课程简介
- 资料
- Go 实战训练营课程简介
- 1.Go 实战训练营课程简介
- 07 第一周:Web 框架之 Server 与路由树
- 资料
- Web 模块 – 1. Web 框架概览
- Web 模块 – 2. Server
- Web 模块 – 3. 路由树
- 1. Web 框架概览:学习路线
- 10. 路由树:静态匹配测试用例
- 11. 路由树:静态匹配之路由查找
- 12. 路由树:静态匹配之集成 Server
- 13. 路由树:通配符匹配之路由注册
- 14. 路由树:通配符匹配之路由查找与测试
- 15. 路由树:参数路径之基本注册和查找
- 16. 路由树:参数路径之校验
- 17. 路由树:参数路径之参数值
- 18. 路由树总结与面试要点
- 2. Web 框架概览:Beego 框架分析
- 20.第一周作业:实现一棵路由树[选学]
- 21.第一周路由树作业讲解[选学]
- 3. Web 框架概览:Gin 框架分析
- 4. Web 框架概览:Iris 框架分析
- 5. Web 框架概览:Echo 框架分析与对比总结
- 6. Server 详解与面试要点
- 7. 路由树:Beego、Gin、Echo 实现与设计总结
- 8. 路由树:全静态匹配
- 9. 路由树:TDD 起步
- 08 第二周:Web 框架之 Context 与 AOP 方案
- 资料
- Web 模块 – 4. Context
- Web 模块 – 5. AOP 方案
- 1. Context 简介
- 10. Context 总结与面试要点
- 11. AOP 简介与不同框架设计概览
- 12. AOP 设计方案:Middleware
- 13. Middleware:AccessLog
- 14. Middleware:Trace 简介和 OpenTelemetry
- 15. Middleware:OpenTelemetry 测试
- 16. Middleware:OpenTelemetry 总结
- 17. Prometheus 详解
- 18. Middleware:Prometheus
- 19. Middleware 例子:错误页面
- 2. Context:Beego Context 设计分析
- 20. Middleware 例子:从 panic 中恢复
- 21. Middleware 总结和面试
- 23.第二周作业:可路由的 Middleware 设计[选学]
- 24.第二周 Middleware 作业讲解[选学]
- 3. Context:Gin Context 设计分析
- 4. Context:Echo 和 Iris 的 Context 设计分析
- 5. Context:处理输入输出总结
- 6. Context:处理输入之 Body 输入
- 7. Context:处理输入之表单输入
- 8. Context:处理输入之查询参数、路径参数和 StringValue
- 9. Context:处理输出
- 09 第三周:Web 框架之页面渲染、文件处理与 Session
- 资料
- Web 模块 – 6. 页面渲染
- Web 模块 – 7. 文件处理
- Web 模块 – 8. Session
- 1. 页面渲染:模板引擎接口定义
- 10. Session:用户使用示例和 Manager 设计
- 11. Session:web.Context 缓存 Session
- 12. Session:基于内存的实现
- 13. Session:基于 Redis 的实现
- 14. Session:基于 Cookie 的实现
- 15. Session:测试与面试要点总结
- 2. 页面渲染:Template 语法
- 3. 页面渲染:GoTemplateEngin 实现、面试要点总结
- 4. 文件处理:文件基本操作
- 5. 文件处理:文件上传
- 6. 文件处理:文件下载
- 7. 文件处理:静态资源处理、面试要点总结
- 8. Session:概念与不同框架的 Session 设计分析
- 9. Session:接口设计
- 10 第四周:ORM 框架之 SELECT 与元数据
- 资料
- ORM 模块 – 1. ORM 框架概览
- ORM 模块 – 2. SELECT 起步
- ORM 模块 – 3. 元数据
- 1. ORM 学习路线图
- 10. 元数据:反射-读字段
- 11. 元数据:反射-写字段
- 12. 元数据:反射-方法
- 13. 元数据:反射-遍历
- 14. 元数据:反射的开源实例、面试要点总结
- 15. 元数据:反射解析模型
- 16. 元数据:利用元数据改造 Selector、元数据阶段总结
- 18.第四周作业:DELETE 语句[选学]
- 19.第四周 DELETE 作业讲解[选学]
- 2. ORM 框架概览:Beego ORM 分析
- 3. ORM 框架概览:GORM 和 Ent 分析
- 4. ORM 框架总结和面试要点
- 5. SELECT:Beego、GORM、Ent 的 SQL构造分析
- 6. SELECT:核心接口定义
- 7. SELECT:SELECT 语句规范、Selector 定义、FROM 语句实现
- 8. SELECT:WHRER 语句、Expression 抽象和面试要点
- 9. 元数据简介
- 11 第五周:ORM 框架之元数据、SQL 编程与结果集处理
- 资料
- ORM 模块 – 3. 元数据
- ORM 模块 – 4. SQL编程
- ORM 模块 – 5. SELECT 结果集处理
- 1. 元数据:注册中心
- 10. SQL 编程:Prepare Statement
- 11. SQL 编程:sqlmock 入门、SQL 编程面试要点
- 12. 结果集处理:Open 与 OpenDB
- 13. 结果集处理:发起查询异常情况
- 14. 结果集处理:反射处理结果集
- 15. 结果集处理:代码优化与总结
- 16. 加餐:Option 设计模式
- 2. 元数据:注册中心并发问题
- 3. 元数据:标签自定义列名
- 4. 元数据:接口自定义表名
- 5. 元数据:编程方式自定义表名和列名
- 6. 元数据:总结与面试要点
- 7. SQL 编程:增删改查
- 8. SQL 编程:Valuer 和 Scanner 接口
- 9. SQL 编程:事务与隔离级别
- 12 第六周:ORM 框架之结果集处理、SELECT 进阶与 INSERT
- 资料
- ORM 模块 – 5. SELECT 结果集处理
- ORM 模块 – 6. SELECT 进阶:指定列和聚合函数
- ORM 模块 – 7. INSERT 语句
- 1. 结果集处理:unsafe 入门
- 10. INSERT:最简实现
- 11. INSERT:指定列
- 12. INSERT:UPSERT API 定义
- 13. INSERT:MySQL UPSERT 基本实现
- 14. INSERT:方言抽象 Dialect
- 15. INSERT:builder 抽象与重构
- 16. INSERT:SQLite UPSERT 实现、方言抽象局限性
- 17. INSERT:INSERT 执行
- 18. INSERT:unsafe 读取字段、总结与面试要点
- 2. 结果集处理:unsafe 实现
- 20.第六周作业:丰富 SELECT 语句[选学]
- 21.第六周 SELECT 作业讲解[选学]
- 3. 结果集处理:valuer 重构与基准测试
- 4. 结果集处理:总结与面试要点
- 5. SELECT 进阶:指定简单列
- 6. SELECT 进阶:指定聚合函数
- 7. SELECT 进阶:原生表达式
- 8. SELECT 进阶:别名
- 9. INSERT:INSERT 语句概览
- 13 第七周:ORM 框架之事务 API、AOP 方案与集成测试
- 资料
- ORM 模块 – 10. AOP 方案
- ORM 模块 – 11. 集成测试与原生查询
- ORM 模块 – 9. 事务 API
- 1. 事务 API:不同框架设计分析、设计与实现
- 2. 事务 API:事务闭包 API、总结与面试要点
- 3. AOP 方案:不同框架设计分析、方案总结
- 4. AOP 方案:Middleware 接入与 querylog
- 5. AOP 方案:Middleware 各种实现、总结与面试要点
- 6. 集成测试:起步与 MySQL 的增删改查
- 7. 集成测试:TestSuite 与 Suite
- 8. 集成测试:细节探讨与要点总结
- 9. 原生查询详解
- 14 第八周:ORM 框架之复杂查询、Protobuf 与代码生成
- 资料
- ORM 模块 – 11. 复杂查询
- ORM 模块 – 12. Protobuf 和 代码生成辅助方法
- 1. 复杂查询:JOIN 查询简介
- 10. 代码生成:生成辅助代码(一)
- 11. 代码生成:生成辅助代码(二)
- 12. protobuf 与代码生成总结与面试要点
- 14.第八周作业:子查询[选学]
- 15.第八周子查询作业讲解[选学]
- 2. 复杂查询:JOIN API 定义
- 3. 复杂查询:JOIN – USING 用法
- 4. 复杂查询:JOIN – ON 用法
- 5. 复杂查询:补充测试及总结
- 6. protobuf 插件魔改
- 7. 代码生成:AST 简介
- 8. 代码生成:AST 编程入门
- 9. 代码生成:AST 主要接口和实现
- 15 第九周:缓存模块之并发编程
- 资料
- 缓存模块 – 0. 并发编程
- 1. 缓存模块路线图
- 10. 并发编程:sync.Pool 入门和原理
- 11. 并发编程:sync.Pool 开源实例、面试要点与总结
- 12. 并发编程:sync.WaitGroup 详解
- 13. 并发编程:channel 编程入门
- 14. 并发编程:利用 channel 实现一个基于内存的消息队列
- 15. 并发编程:利用 channel 实现一个任务池
- 17.加餐:参与开源的一般步骤[选学]
- 2. 并发编程:context 基本方法
- 3. 并发编程:context 安全传递数据
- 4. 并发编程:context 开源例子
- 5. 并发编程:context 底层实现、面试要点与总结
- 6. 并发编程:sync.Mutex 入门和 double-check
- 7. 并发编程:sync.Mutex 原理
- 8. 并发编程:sync.Mutex 面试要点与总结
- 9. 并发编程:sync.Once 详解
- 16 第十周:缓存模块之缓存 API、缓存模式与缓存异常
- 资料
- 缓存模块 – 0. 并发编程
- 缓存模块 – 1. 缓存 API:本地缓存和 Redis 实现
- 缓存模块 – 2. 缓存异常和缓存模式
- 1. 并发编程:channel 原理、底层实现与面试要点
- 10. 缓存模式:write-through、write-back、refresh-ahead
- 11. 缓存异常详解、面试要点与总结
- 13.第十周作业:服务器优雅退出[选学]
- 14.第十周优雅退出作业讲解[选学]
- 2. 缓存 API:缓存 API 设计与实现
- 3. 缓存 API:本地缓存实现与过期时间控制
- 4. 缓存 API:evict 回调与测试
- 5. 缓存 API:控制本地缓存内存
- 6. 缓存 API:本地缓存回顾与总结
- 7. 缓存 API:Redis 实现
- 8. 缓存 API:组合 API、面试要点与总结
- 9. 缓存模式:read-through 模式
- 17 第十一周:缓存模块之 Redis 分布式锁与缓存一致性
- 资料
- 缓存模块 – 3. 用 Redis 实现分布式锁
- 缓存模块 – 4. 缓存一致性
- 1. 分布式锁:用 Redis 来实现一个分布式锁
- 11.第十一周作业(1):控制缓存内存使用量[选学]
- 12.第十一周作业(2):实现一个分布式锁[选学]
- 13.第十一周 控制缓存内存使用量作业讲解[选学]
- 2. Redis 分布式锁:锁实现单元测试
- 3. Redis 分布式锁:锁实现集成测试
- 4. Redis 分布式锁:手动续约实现与测试
- 5. Redis 分布式锁:如何使用 Refresh 方法
- 6. Redis 分布式锁:自动续约
- 7. Redis 分布式锁:加锁重试
- 8. Redis 分布式锁:singleflight 优化、面试要点与总结
- 9. 缓存一致性:问题根源与解决方案
- 18 第十二周:微服务框架之网络编程与最简 RPC
- 资料
- 1期定稿-微服务模块-0. 网络编程-logo
- 1期定稿-微服务模块-1. 微服务框架概览-logo
- 1期定稿-微服务模块-2. 最简 RPC-logo
- 1. 微服务模块学习路线
- 10. 最简 RPC:捕捉本地调用
- 11. 最简 RPC:发送请求与返回响应
- 12. 最简 RPC:重构代码、总结与面试要点
- 2. 网络编程:服务端详解
- 3. 网络编程:户端详解、简单 TCP 服务器
- 4. 网络编程面试要点与总结
- 5. 连接池:基本原理、开源实例 silenceper&pool
- 6. 连接池:sql.DB 中连接池管理
- 7. 连接池:手写简单的连接池、连接池总结
- 8. 微服务框架概览
- 9. 最简 RPC:RPC 基本原理
- 19 第十三周:微服务框架之 RPC 协议设计与实现
- 资料
- 微服务模块-3. RPC 协议设计与实现
- 1. RPC:RPC 协议设计概览、不同 RPC 框架的协议设计
- 10. RPC 超时控制:超时时间传递
- 11. RPC 超时控制:链路超时实现、总结与面试要点
- 13.第十三周作业:在 RPC 中支持压缩算法[选学]
- 14.作业讲解:在 RPC 中支持压缩算法[选学]
- 2. RPC:设计自己的 RPC 协议
- 3. RPC 协议设计:请求编解码详解
- 4. RPC 协议设计:响应编解码、重构代码与 error 处理
- 5. RPC 协议设计总结与面试要点
- 6. RPC 序列化协议:原理概述与 JSON 实现
- 7. RPC 序列化协议:Proto 实现与总结
- 8. RPC 调用语义:异步、单向和回调
- 9. RPC 超时控制:链路超时控制
- 20 第十四周:微服务框架之服务注册与发现
- 资料
- 微服务模块-4. 服务注册与发现
- 1. 服务注册与发现概览
- 2. 服务注册与发现:不同框架接口与实现
- 3. 服务注册与发现:以 gRPC 为底层通信协议
- 4. gRPC 服务注册与发现模型
- 5. gRPC:设计并实现一个 etcd 注册中心
- 6. gRPC:etcd 服务发现实现
- 7. 服务注册与发现总结
- 8. 服务注册与发现面试要点详解
- 21 第十五周:微服务框架之负载均衡、路由与集群
- 资料
- 微服务模块-5. 集群、路由与负载均衡
- 1. 负载均衡:轮询和加权轮询详解
- 10. 路由:过滤功能对负载均衡的影响
- 11. 集群:集群Cluster详解
- 12. 集群:gRPC中如何实现广播
- 13. 集群:gRPC广播的响应处理策略
- 14. 负载均衡、路由和集群总结与面试要点
- 16.第十五周作业:最快响应时间负载均衡算法[选学]
- 17.作业讲解:最快响应时间负载均衡算法[选学]
- 2. 负载均衡:轮询实现
- 3. 负载均衡:加权轮询实现
- 4. 负载均衡:加权轮询算法测试、如何获取权重
- 5. 负载均衡:随机和加权随机、哈希和一致性哈希详解
- 6. 负载均衡:动态算法
- 7. 负载均衡总结
- 8. 路由:路由策略详解
- 9. 路由:实现分组功能
- 22 第十六周:微服务框架之可用性与可观测性
- 资料
- 课程总结
- 微服务模块-6. 可用性
- 微服务模块-7. 可观测性
- 1. 可用性:可用性概述、不同框架的AOP方案
- 11.课程总结[选学]
- 12.Go 实战训练营毕业项目[选学]
- 2. 可用性:故障检测之令牌桶算法
- 3. 可用性:故障检测之漏桶算法、固定窗口算法
- 4. 可用性:故障检测之滑动窗口算法
- 5. 可用性:基于Redis 的固定窗口算法实现
- 6. 可用性:基于 Redis 的滑动窗口算法实现
- 7. 可用性总结与面试要点
- 8. 可观测性:不同框架设计方案、metrics&opentelemetry实现
- 9. 可观测性:基于可观测性的服务治理
- 加餐直播回放
- 2月8日助教分享-初识微服务实践[选学]
- 主题直播二:SSO&OAuth2 系统设计
- 2.SSO&OAuth2 系统设计(一)[选学]
- 3.SSO&OAuth2 系统设计(三)[选学]
- 4.SSO&OAuth2 系统设计(四)[选学]
- 主题直播三:增强 ORM 框架:支持简单的分库分表功能
- 2.ORM 框架之分库分表(一)[选学]
- 3.ORM 框架之分库分表(二)[选学]
- 4.ORM 框架之分库分表(三)[选学]
- 5.ORM 框架之分库分表(四)[选学]
- 主题直播四:全链路压测
- 2.全链路压测(一)[选学]
- 3.全链路压测(二)[错误视频是JAVA]
- 3.全链路压测(二)[选学]
- 4.全链路压测(三)[选学]
- 5.全链路压测(四)[选学]
- 主题直播五:面试增强计划
- 资料
- 面试增强计划:面试指南
- 2.面试增强计划(一)[选学]
- 主题直播一:并发等待队列实现
- 2.并发队列(一)[选学]
- 3.并发队列(二)[选学]
- 4.并发队列(三)[选学]
- 5.并发队列(四)[选学]
包含内容
- · 01 学习手册
- · 暂无学习内容
- · 02 Git & GitHub 操作指南
- · 1. 为什么要使用 Git&GitHub[选学]
- · 2. 什么是版本控制?[选学]
- · 3. 安装 Git、初始化仓库并做最简单的配置[选学]
- · 4. 在Windows系统上安装Git[选学]
- · 5. 完成一个最简单的Git操作流程:工作区、暂存区和仓库[选学]
贡献者
Jason
白银