Meta
Notes
基础篇
- lesson0: GitHub最流行的golang-cheat-sheet中文版本
- lesson1: Go程序结构
- lesson2: 数据类型:数字,字符串,bool
- lesson3: 变量类型定义:全局变量,局部变量,多变量,零值
- lesson4: 常量和枚举
- lesson5: 运算操作符
- lesson6: 控制语句if/switch
- lesson7: 循环语句for/goto/break/continue
- lesson8: 函数,闭包和方法
- lesson9: 变量作用域
- lesson10: 数组:一维数组和多维数组
- lesson11: 指针pointer
- lesson12: 结构体struct
- lesson13: 切片Slice
- lesson14: range迭代
- lesson15: map集合
- lesson16: 递归函数
- lesson17: 类型转换
- lesson18: 接口interface
- lesson19: 协程goroutine和管道channel
- lesson20: defer语义
- lesson21: 并发编程之sync.WaitGroup
- lesson22: 并发编程之sync.Once
- lesson23: 并发编程之sync.Mutex和sync.RWMutex
- lesson24: 并发编程之sync.Cond
- lesson25: 并发编程之sync.Map
- lesson26: 并发编程之原子操作sync/atomic
- lesson27: 包Package和模块Module
- lesson28: panic, recover运行期错误处理
- lesson29: select语义
- lesson30: go单元测试
- lesson31: go性能测试
- lesson32: go模糊测试
进阶篇
- 常用关键字
- 语言基础
- 并发编程
- 泛型
- Fuzzing
- Workspace mode 工作区模式
- 语言规范
- Go 开发中的常见错误
- 第1篇:go未知枚举值
- 第2篇:go benchmark性能测试的坑
- 第3篇:go指针的性能问题和内存逃逸
- 第4篇:for/switch和for/select做break操作退出的注意事项
- 第5篇:go语言Error管理
- 第6篇:slice初始化常犯的错误
- 第7篇:不使用-race选项做并发竞争检测
- 第8篇:并发编程中Context使用常见错误
- 第9篇:使用文件名称作为函数输入
- 第10篇:Goroutine和循环变量一起使用的坑
- 第11篇:意外的变量遮蔽(variable shadowing)
- 第12篇:冗余的嵌套代码
- 第13篇:init函数的常见错误和最佳实践
- 第14篇:过度使用getter和setter方法
- 第15篇:interface使用的常见错误和最佳实践
- 第16篇:any的常见错误和最佳实践
- 高性能 Go
- Go 安全
- Go 版本演进
Go Quiz
- Go Quiz: 从Go面试题看slice的底层原理和注意事项
- Go Quiz: 从Go面试题搞懂slice range遍历的坑
- Go Quiz: 从Go面试题看channel的注意事项
- Go Quiz: 从Go面试题看channel在select场景下的注意事项
- Go Quiz: 从Go面试题看分号规则和switch的注意事项
- Go Quiz: 从Go面试题看defer语义的底层原理和注意事项第1篇
- Go Quiz: 从Go面试题看defer的注意事项第2篇
- Go Quiz: 从Go面试题看defer的注意事项第3篇
- Go Quiz: Google工程师的Go语言题目
- Go Quiz: 从Go面试题看panic注意事项第1篇
- Go Quiz: 从Go面试题看recover注意事项第1篇
- Go Quiz: 从Go面试题看函数命名返回值的注意事项
- Go Quiz: 从Go面试题看锁的注意事项
- Go Quiz: 从Go面试题看变量的零值和初始化赋值的注意事项
- Go Quiz: 从Go面试题看数值类型的自动推导
- Go questions-golang.design
Go 标准库
实战篇
代码规范
Web 框架
Gin
RPC
gRPC
Databases
MySQL
Redis
Docker/K8s
Document Tools
Swagger
CI/CD
外文翻译
- GitHub最流行的golang-cheat-sheet中文版本
- 官方博文:Go开源13周年
- 官方博文:Go开发者调研方式改变了
- 官方博文:什么场景应该使用泛型
- 官方博文:Go工作区模式最佳实践
- 官方博文:Go 1.18发布啦!
- 官方教程:Go fuzzing模糊测试
- 官方教程:Go泛型入门
- 官方博文:Go 1.18 Beta 2发布
- 官方博文:Go官方推出了Go 1.18的2个新教程
- 官方博文:支持泛型的Go 1.18 Beta 1版本正式发布
- 官方博文:Go开源12周年
Go 环境和工具
- GitHub上的项目go get连不上怎么办?
- GoLand常用快捷键
- Mac的shell切换、环境变量设置以及软件安装问题
- Go testing缓存导致测试没执行的问题
- go install安装的不同Go版本的可执行程序和源码存放在哪里
- Mac系统查看Go开发相关的系统设置
Go Book
- The Go Programming Language-Go语言圣经
- Go语言高级编程-chai2010.gitbooks.io
- Go语言设计与实现-draveness.me
- Go设计模式-Tamer Tas@google
- 深入解析Go-tiancaiamao.gitbooks.io
- 码农桃花源-qcrao91.gitbook.io
- Go语言高性能编程-geektutu
- Go Under The Hood-golang.design
- 英文Go书籍list
Go Blog
- Jincheng’s Blog
- Russ Cox-Go团队负责人
- Go Documentation
- Golang GitHub Wiki
- Go By Example
- Golang By Example
- CS Professor Nilsson from KTH
- John Arundel
- Dave Cheney
- Jaana Dogan-Pricipal Engineer at AWS
- go101.org
- Valentin Deleplace-Google Engineer
- Jay Conrod-Ex Google Go Team Member
- Medium: A Journey with Go
- Teiva Harsanyi-100 Go Mistakes author
- Carl M. Johnson.net-Tech Director of Spotlight PA
- Alex Edwards-A full stack Web Developer
- golang.design
- Amit Saha-Atlassian Engineer
- Paschalis Tsilias-Grafana Engineer
- liwenzhou-李文周
- TalkGo发起人-杨文
- smallest-rpcx作者
- ChangkunOu-欧长坤
- chai2010-柴树杉
- cch123-曹春晖
- halfrost-Dezhi Yu
- draveness-左书祺
- unknwon-无闻
- strikefreedom-Andy Pan
- qcrao-码农桃花源
- geektutu-极客兔兔
- topgoer.com
- topgoer.cn
- 涛叔-taoshu.in
- jianyu chen
- Zhiyun Luo-Tencent IEG Developer
Go Video
YouTube
- Gopher Academy
- GopherCon Talks Since 2014
- GoLab Conference Since 2018
- Basics, Intermediate, Advanced Go Tutorials-Bitfield Consulting
- TutorialEdge Golang Development