0Pricing
Go Academy icon

Go Academy

GOBackendCloudSystemsWebBeginnerEnterpriseNetwork

深入学习 Go 编程,使用 GO Academy 创建高效、可扩展的应用程序。

🤖 AI 驱动📚 51 门课程👥 10万+ 学习者⭐ 4.9 分
课程概览

Go:为并发而生,为规模而设

Go 是一门由 Google 创建的静态类型编译语言,旨在满足大规模系统的需求——快速编译、直观的并发机制,以及一个真正满足生产需求的最小化标准库。它为 Docker、Kubernetes、Cloudflare 和 Uber 等公司的基础设施提供支撑。本课程从基础原理开始讲授 Go,涵盖并发模型、REST API、gRPC 服务,以及工程师在生产环境中使用的性能工具。

你将学到什么

你将从 Go 的类型系统、零值和控制流开始,然后学习切片、映射、结构体、接口,以及让 Go 代码可预测的错误处理规范。课程涵盖 sync 包、goroutine、channel 和用于并发编程的 select 语句,以及用于取消操作的 context 包。在实践方面,你将使用 net/http 构建 HTTP 服务器和客户端,用 Gin 编写 REST API、添加中间件、使用 database/sql、sqlx、pgx 和 GORM 查询数据库、用 Cobra 构建命令行工具,以及在 Docker 容器内部署应用程序。高级主题包括用 pprof 进行基准测试、worker pool、pipeline、gRPC、反射,以及 Go 内存模型。

学习路径

五十一门课程从 A1 级别进阶到 A2、B1、B2,再到 C1。A 级课程建立语言基础——变量、控制流、函数、多返回值,以及核心集合类型。B1 深化这个模型,涵盖结构体、指针、接口、包、标准库和文件 I/O。B2 是最大的单元,从 goroutine 和 channel 到 HTTP、测试、泛型、数据库访问、用 Gin 构建 REST API、Docker 部署、用 slog 进行结构化日志记录、WebSocket 和定时任务。C1 以生产级内容收尾:用 pprof 进行基准测试和性能分析、worker pool 和 pipeline、高级并发模式、Go 中的 gRPC、reflect 包、插件系统,以及 Go 内存模型和垃圾回收器。

工作原理

每门课程被分成短小精悍的课时,你可以在内置代码编辑器中完成这些课时并获得实时反馈。当你遇到困难时,一个 AI 导师可以随时在线帮助你理解概念,而不会直接给出答案——这样你可以建立真正的理解,而不是只会复制解决方案。

开始学习 →

你的学习方式

🎯
互动课程
实时反馈的动手编程练习
🤖
AI 导师
遇到困难时立即获得 AI 帮助
💻
内置编辑器
直接在浏览器中编写并运行代码
🏆
证书
完成课程后获得证书
课程

51 门课程

Go Academy 学习路径中的所有课程。

01

欢迎学习 Go

A13 节课

了解 Go 是什么、Google 为何创建它,以及它为何驱动着全球一些最重要的软件——专为零基础初学者讲解。

02

Go 基础:变量、类型与零值

A14 节课PRO

学习 Go 的类型系统、使用 var 和 := 声明变量、零值,以及包括 iota 在内的常量。

03

控制流:if、for、switch

A14 节课PRO

掌握 Go 的控制流结构,包括带初始化语句的 if、多用途的 for 循环,以及 switch。

04

函数与多返回值

A24 节课PRO

理解 Go 函数:签名、可变参数、命名返回值、defer,以及一等函数。

05

数组、切片与映射

A24 节课PRO

深入学习 Go 集合:定长数组、动态切片和哈希映射,以及符合 Go 风格的使用模式。

06

Go 字符串与 strings 包

A24 节课PRO

Go 字符串与 strings 包:符文与字节的比较、strings 包函数等更多内容

07

使用 fmt 与 Stringer 进行格式化

A24 节课PRO

使用 fmt 与 Stringer 进行格式化:Printf 动词、Sprintf 和 Fprintf 等更多内容

08

Go 时间与 time 包

A24 节课PRO

Go 时间与 time 包:时间与时长、格式化与解析等更多内容

09

Go 结构体与方法基础

B14 节课PRO

使用结构体建模数据,通过方法附加行为,并理解值接收者与指针接收者的区别。

10

Go 中的指针

B14 节课PRO

理解 Go 指针:内存地址、解引用、指针接收者,以及应当使用指针的时机。

11

Go 接口与鸭子类型

B14 节课PRO

学习 Go 的隐式接口系统,定义并实现接口,以及使用类型断言和类型 switch。

12

Go 中的错误处理

B14 节课PRO

掌握 Go 的显式错误处理:error 接口、errors.Is/As、错误包装,以及自定义错误类型。

13

Go 包与模块

B14 节课PRO

使用包组织 Go 代码,使用 Go modules 管理依赖,并理解可见性规则。

14

Go 标准库核心

B14 节课PRO

了解最重要的 Go 标准库包:fmt、strings、strconv、math、time 和 os。

15

Go 正则表达式

B14 节课PRO

Go 正则表达式:regexp 基础、查找与提取等更多内容

16

Go 排序与 sort 包

B14 节课PRO

Go 排序与 sort 包:切片排序、自定义排序顺序等更多内容

17

深入探索 Go 映射

B14 节课PRO

深入探索 Go 映射:映射内部机制、检查元素是否存在等更多内容

18

Go 结构体标签与验证

B14 节课PRO

Go 结构体标签与验证:什么是结构体标签、JSON 标签等更多内容

19

Go 编码格式

B14 节课PRO

Go 编码格式:回顾 encoding/json、encoding/xml 等更多内容

20

文件 I/O 与 JSON 处理

B14 节课PRO

使用 os 和 bufio 读写文件,使用 encoding/json 编码和解码 JSON,并处理 CSV 数据。

21

Go bufio 与高效输入输出

B14 节课PRO

Go bufio 与高效输入输出:带缓冲的读取器、Scanner 等更多内容

22

Go 嵌入与组合

B14 节课PRO

Go 嵌入与组合:结构体嵌入、接口嵌入等更多内容

23

Goroutine 与通道基础

B24 节课PRO

启动 goroutine,通过通道通信,并使用带缓冲通道理解 Go 的并发模型。

24

Select 语句与通道模式

B24 节课PRO

使用 select 实现多通道通信,实现扇入/扇出、超时和工作池。

25

互斥锁与 sync 包

B24 节课PRO

使用 Go sync 包中的 Mutex、RWMutex、Once 和 WaitGroup 保护共享状态。

26

使用 Context 包实现取消

B24 节课PRO

使用 context.Context 在多个 goroutine 之间传递取消信号、截止时间和请求作用域值。

27

使用 net/http 构建 HTTP 服务器

B24 节课PRO

使用 net/http 在 Go 中构建 HTTP 服务器:处理器、ServeMux、中间件和优雅关闭。

28

HTTP 客户端与 REST API 调用

B24 节课PRO

使用 Go 的 http.Client 调用 REST API:超时、请求头、身份验证、JSON 解析和重试。

29

Go 测试策略

B24 节课PRO

使用 Go 的 testing 包编写有效测试:表驱动测试、子测试、模拟对象和测试覆盖率。

30

Go 泛型:类型参数与约束

B24 节课PRO

掌握 Go 1.18+ 泛型:类型参数、约束、comparable,以及真实项目中的泛型模式。

31

Go io.Reader 与 io.Writer

B24 节课PRO

Go io.Reader 与 io.Writer:Reader 接口、Writer 接口等更多内容

32

Go 函数式选项模式

B24 节课PRO

Go 函数式选项模式:参数过多带来的问题、选项函数等更多内容

33

Go 速率限制

B24 节课PRO

Go 速率限制:令牌桶概念、golang.org/x/time/rate 等更多内容

34

Go database/sql 基础

B24 节课PRO

Go database/sql 基础:打开连接、查询行等更多内容

35

使用 Cobra 构建 CLI 应用

B24 节课PRO

使用 Cobra 构建专业的命令行工具:命令、标志、子命令、配置和分发。

36

使用 sqlx 与 pgx 访问数据库

B24 节课PRO

使用 database/sql 从 Go 查询 PostgreSQL,使用 sqlx 扫描结构体,并使用 pgx 实现高性能访问。

37

使用 Gin 构建 REST API

B24 节课PRO

使用 Gin 框架创建适用于生产环境的 REST API:路由、绑定、验证和错误处理。

38

Go 中间件模式

B24 节课PRO

设计可复用的 HTTP 中间件:日志记录、速率限制、身份验证、CORS 和请求 ID 注入。

39

使用 Docker 部署 Go 应用

B24 节课PRO

使用多阶段 Docker 构建、Docker Compose、环境配置和健康检查,将 Go 二进制文件容器化。

40

Go GORM ORM

B24 节课PRO

Go GORM ORM:模型与 AutoMigrate、CRUD 操作等更多内容

41

使用 Viper 配置 Go

B24 节课PRO

使用 Viper 配置 Go:读取配置文件、环境变量等更多内容

42

使用 slog 进行 Go 结构化日志记录

B24 节课PRO

使用 slog 进行 Go 结构化日志记录:结构化日志的意义、slog 处理器等更多内容

43

Go WebSockets

B24 节课PRO

Go WebSockets:WebSocket 基础、使用 gorilla/websocket 等更多内容

44

Go 定时任务与调度

B24 节课PRO

Go 定时任务与调度:基于时间的调度、robfig/cron 库等更多内容

45

Go 基准测试与 pprof 性能分析

C14 节课PRO

使用基准测试、pprof CPU/堆性能分析和执行追踪来衡量并优化 Go 代码。

46

Go 工作池与流水线

C14 节课PRO

Go 工作池与流水线:工作池模式、扇出与扇入等更多内容

47

高级并发模式

C14 节课PRO

使用流水线、errgroup、信号量和反应堆模式构建适用于生产环境的并发系统。

48

使用 Go 实现 gRPC

C14 节课PRO

使用 Protocol Buffers 定义服务,生成 Go 代码,并实现一元和流式 gRPC 服务。

49

反射与 reflect 包

C14 节课PRO

使用 reflect 在运行时检查和操作类型:Kind、Value、结构体标签和动态调用。

50

Go 插件系统

C14 节课PRO

使用插件包、接口和 Linux 上的动态加载构建可扩展的 Go 应用。

51

Go 内存模型与垃圾回收器

C14 节课PRO

理解 Go 的内存模型、happens-before 规则、栈与堆、逃逸分析,以及 GC 调优。

常见问题

常见问题解答

Go Academy 课程免费吗?

免费。你可以免费开始 Go Academy 课程并完成它的所有互动课程。可选的 PRO 订阅解锁高级 AI 工具和可分享的证书。

学习 GO 需要有先前的经验吗?

不需要。课程从基础开始,逐步进阶到更高难度的主题,所以即使你没有任何 GO 基础也可以开始。

我在 CoddyKit 上怎样学习 GO?

学以致用。简洁的互动课程将清晰的讲解与实时动手编程练习结合,24/7 AI 导师在你遇到困难时提供个性化帮助。

完成 Go Academy 后能获得证书吗?

可以。PRO 学员可以参加考试,获得 Go Academy 课程的可分享的完成证书,其中包含可验证的代码。

我能在手机上学习 GO 吗?

可以。CoddyKit 支持网页版和原生 iOS、Android 应用,你可以在任何设备上学习 GO,进度会自动同步。

立即开始 Go Academy

加入数千名学习者,通过 AI 驱动的课程掌握编程。

免费开始 →浏览所有课程