附录E:学习资源与社区
附录E整理Go学习资源和社区:官方文档、书籍、博客、视频课程、社区等。用途:找不到答案时知道去哪里查,想深入学习时有方向。
推荐优先级:官方文档 > 书籍 > 博客 > 视频
- 官网:https://go.dev
- 文档:https://go.dev/doc/
- 标准库文档:https://pkg.go.dev
- 博客:https://go.dev/blog
- Playground:https://go.dev/play(在线运行Go代码)
- 《A Tour of Go》- 交互式Go教程:https://go.dev/tour/
- 《How to Write Go Code》- 项目结构指南
- 《Go Documentation》- 官方文档
go fmt- 代码格式化go vet- 代码检查go doc- 查看文档go test- 测试框架
| 书名 | 作者 | 说明 |
|---|---|---|
| 《Go语言圣经》 | Alan A. A. Donovan, Brian Kernighan | 官方推荐,经典入门 |
| 《Go实战》 | William Kennedy | 实战导向 |
| 《Go语言趣学指南》 | 日漫风格 | 适合零基础 |
| 书名 | 作者 | 说明 |
|---|---|---|
| 《Go语言高级编程》 | 柴树杉 | 深入Go内部 |
| 《Go语言设计与实现》 | Draven | 分析Go实现原理 |
| 《Concurrency in Go》 | Katherine Cox-Buday | Go并发编程 |
- Go语言官网教程:https://go.dev/tour/
- Golang.org Coursera:Go特殊ization
- YouTube - Gopher Guides:Go入门到精通
- B站 - 码农高天堂Go教程:中文入门
- 极客时间 - Go语言核心36讲:体系化学习
- 慕课网 - Go语言微服务架构:微服务实战
| 社区 | 地址 | 说明 |
|---|---|---|
| Go语言中文网 | https://studygolang.com | 最大中文社区 |
| GoCN | https://gocn.vip | Go语言爱好者 |
| 知乎Go话题 | https://www.zhihu.com/topic/go | 讨论区 |
| 社区 | 地址 | 说明 |
|---|---|---|
| golang-nuts | Google Groups | 官方邮件列表 |
| Reddit r/golang | https://reddit.com/r/golang | 社区讨论 |
| Stack Overflow | https://stackoverflow.com/questions/tagged/go | 问答 |
开源项目推荐(学习源码)
Section titled “开源项目推荐(学习源码)”| 项目 | Stars | 说明 |
|---|---|---|
| Kubernetes | 100k+ | 容器编排平台 |
| Docker | 60k+ | 容器引擎 |
| Prometheus | 45k+ | 监控系统 |
| Grafana | 55k+ | 可视化平台 |
| Gin | 75k+ | Web框架 |
| Etcd | 42k+ | 分布式存储 |
小型项目(学习用)
Section titled “小型项目(学习用)”# 优秀的小型Go项目git clone https://github.com/gin-gonic/gingit clone https://github.com/go-redis/redisgit clone https://github.com/spf13/cobraVS Code扩展
Section titled “VS Code扩展”| 扩展名 | 功能 |
|---|---|
| Go | 主扩展,包含lint、格式化 |
| Go Outliner | 代码结构 |
| Go Test Explorer | 测试运行器 |
| Error Lens | 错误提示 |
GoLand插件
Section titled “GoLand插件”- Go插件(内置)
- Key Promoter X(快捷键提示)
- AceJump(快速跳转)
| 工具 | 说明 |
|---|---|
gofmt | 代码格式化 |
goimports | 格式化+导入管理 |
golint | 代码风格检查 |
govet | 静态分析 |
staticcheck | 高级静态分析 |
delve | 调试器 |
博客与Newsletter
Section titled “博客与Newsletter”- Dave Cheney - https://dave.cheney.net/
- Go Blog官方 - https://go.dev/blog
- Russ Cox - https://research.google/research/r/rsc
- Planet Go - https://planetgolang.org/(聚合)
Newsletter
Section titled “Newsletter”- Go Weekly - 每周技术精选
- Golang Daily - 每日资讯
| 平台 | 说明 |
|---|---|
| LeetCode | 算法题,Go可做 |
| 牛客网 | 国内面试题 |
| Codeforces | 算法竞赛 |
// 1. 切片操作// 2. Map使用// 3. Channel并发// 4. 边界情况处理// 5. 性能优化入门阶段: ├─ 语法基础(变量、函数、控制流) ├─ 数据结构(切片、Map) ├─ 面向对象(struct、interface) └─ 错误处理
并发阶段: ├─ Goroutine ├─ Channel ├─ sync原语 └─ Context
工程阶段: ├─ go mod依赖管理 ├─ 测试(unit、benchmark) ├─ 性能分析(pprof) └─ 部署(Docker、K8s)