英文社区
- Go Forum:Go 语言爱好者英文交流论坛
- golang-nuts 邮件列表:Go 语言官方指定邮件列表讨论区
- Go+ 社区:Go 语言官方指定 G+ 社区
知识图谱
- Go Knowledge Graph:Go 知识图谱
网址导航
- 官方:
- Go 中国站点: Go 语言中国官方站点(无需翻墙)
- Playground:Go 语言代码在线运行
- 国内镜像:
- Web 框架:
- ORM 以及数据库驱动:
- 辅助站点:
- Go Walker:Go 语言在线 API 文档
- gobuild.io:Go 语言在线二进制编译与下载
- Rego:Go 语言正则在线测试
- gopm.io:科学下载第三方包
- Json To Go struct:Convert JSON to Go struct在线工具
- 开发工具:
- 学习站点:
- 支持 Go 的云平台:
- 其它站点:
- Golang 杂志:订阅说明
- Newspaper.IO:Golang 新闻订阅
- Go Newsletter:Golang 新闻订阅
资料汇总
中文资料
- 书籍:
- 翻译:
- Effective Go 英文版
- The Way to Go 中文版
- 《Learning Go》英文版:=>《Learning Go》 中文版
- 教程:
英文资料
- 文档:
- Go Code Review Comments:Go 语言代码风格指导
- Go Code Convention:无闻的 Go 语言编码规范
- Uber Go Guide: Uber Go 语言编码规范
- GopherCon 2014
- GopherCon 2015
- GopherCon 2016
- GopherCon 2017
- 书籍:
- Network programming with Go:中文版
- Practical Cryptography With Go
- An Introduction to Programming in Go
- Go Bootcamp
- Mastering Concurrency in Go(July 2014)Nathan Kozyra
- Go Programming Blueprints(January 23,2015)
- The Go Programming Language(Published Oct 30, 2015,Not Yet Published)
- Practical Go: Real world advice for writing maintainable Go programs
视频资料
- 基础:
- COSCUP 2013:
- GopherCon:
- Golang UK Conference:
- GopherCon India 2015: Youtube
Go 学习指南
Go 模块管理
Go 面试专题
基本理解
调度模型
- GMP 模型,为什么要有 P?
- Go 结构体是否可以比较,为什么?
- 单核 CPU,开两个 Goroutine,其中一个死循环,会怎么样?
- 进程、线程都有 ID,为什么 Goroutine 没有 ID?
- Goroutine 数量控制在多少合适,会影响 GC 和调度?
- 详解 Go 程序的启动流程,你知道 g0,m0 是什么吗?
- Goroutine 泄露的情况有哪些?
- Go 在什么时候会抢占 P?
- 会诱发 Goroutine 挂起的 27 个原因
数据结构
interface
defer
map/slice
常见坑
代码调试
Go 历史版本特性
1.17
- 支持切片转换为数组指针
- 支持泛型了?具体怎么用
- 支持模糊测试(Fuzzing)
- 增强构建时的编译约束
- 优化 modules:支持模块依赖图裁剪、延时模块加载
- 优化基于寄存器的函数参数和结果传递
- 优化恐慌所抛出的异常堆栈信息