后记
2024年9月26日大约 7 分钟
后记
如果你真的将语法篇和进阶篇都仔细阅读完了,并且动手敲了代码,那么你会认识到 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垃圾回收的过程等等,前往实现原理章节了解更多内容。