后记
阅读提示
- 适用版本:Go 1.21+(示例在 Go 1.22 下验证)· 前置知识:无 · 阅读时长:约 10 分钟
如果你真的将语法篇和进阶篇都仔细阅读完了,并且动手敲了代码,那么你会认识到 Go 的语法其实并不难,特性也并不多,经验丰富的人可能几天就上手了,它完完全全是一门面向工程的语言,这一点你会在以后的编码中慢慢体会到。倘若你学习完后感到无处施展拳脚,想要更深一步学习,我可以给出下面几个学习路线和示例项目以供参考。
Web 开发
Web 开发是 Go 语言中一个很常见的应用场景,你可以尝试以下的几个开源 Web 框架:
如果你想要进行微服务开发,我推荐下面几个开源框架:
然后你需要与数据库交互,我推荐下面几个开源库:
你可以参照下面这些项目来进行学习:
- gin vue admin
- go-zero-looklook
- gin-admin,单体 Web 项目我比较推荐参考该项目进行学习
- go-platform,微服务项目我推荐参考该项目进行学习
IM 通讯
使用 Go 进行 IM 开发,推荐下面这些开源项目:
网络编程
Go 在网络编程这块也有非常多的应用,下面给出一些参考的开源项目:
游戏服务器
在游戏服务器这个领域,有越来越多的企业转到 Go 这个方向
数据库开发
数据库开发需要一定的技术功底,基于 Go 语言的数据库或引擎同样也不少,光是阅读它们的源代码就需要花费不少时间
- badger,高速 kv 数据库
- dgraph,图数据库
- cayley,图数据库
- etcd,分布式键值数据库
- rosedb,键值数据库,入门的最佳选择
- nutsdb,键值数据库
- prometheus,时序数据库
- tidb,时序数据库
- cockroach,分布式 SQL 数据库
- rqlite,基于 SQLite 的分布式数据库
命令行工具
Go 非常适合用于命令行 CLI 工具开发,下面推荐几个命令行开发框架或库:
- flag,flag 标准库
- cobra,强烈推荐使用 cobra 进行 CLI 开发,有许多著名项目都是基于 cobra,比如 Docker,K8S 等
- go-pretty,用于在命令行进行美观的输出
- cli,轻量级的命令行框架
- kingpin,强大灵活的命令行解析库
由于 cobra 十分常用,基于它进行命令行开发的项目非常多,随便都可以找到,下面只是一些参考项目:
上面只是列出了比较常见的领域,你可以看到的是 Go 在服务端领域应用较为广泛,而客户端则较少,其实 Go 在其他领域也有不少的应用,比如 webrtc,区块链,对象存储,云计算等等,感兴趣可以在 Github 上自行了解。
最后,如果你想更深入的了解Go语言的实现细节,比如slice和 map的底层数据结构,协程调度器的实现,GC垃圾回收的过程等等,前往实现原理章节了解更多内容。
完整示例
下面的程序可以直接运行:复制到文件后执行 go run main.go,或粘贴到 Go Playground 运行。
package main
import (
"encoding/json"
"fmt"
)
type Lesson struct {
Chapter string `json:"chapter"`
Done bool `json:"done"`
}
func main() {
lessons := []Lesson{
{Chapter: "base", Done: true},
{Chapter: "impl", Done: true},
{Chapter: "advance", Done: true},
}
data, err := json.MarshalIndent(lessons, "", " ")
if err != nil {
panic(err)
}
fmt.Println(string(data))
}预期输出:
[
{
"chapter": "base",
"done": true
},
{
"chapter": "impl",
"done": true
},
{
"chapter": "advance",
"done": true
}
]常见错误与踩坑
- 只看不练没有用。 动手把示例敲一遍,肌肉记忆才会留下。
- 不要一上来就追框架。 标准库已经覆盖 HTTP、JSON、测试与性能分析,先从它开始。
- 选一个项目做完。 一个打磨完整的小工具,比十个半途而废的 demo 更有价值。
- 读你用到的库的源码。 Go 标准库可读性很好,多数问题 grep 一下源码就有答案。
- 保持升级节奏。 Go 每半年一个版本;补丁版本可以放心升级,次要版本先跑一轮测试。
更新记录
- 2026-10-14:新增"阅读提示"、完整可运行示例(含预期输出)、常见错误与踩坑清单,以及本更新记录。
