学习任何一门语言,都要学习好基础,把基础打牢,那些框架对你来说都是工具,你自己的基础好,懂得了他们的原理,自己就可以创造更优秀的框架。
基础推荐官方文档,没有什么比这个更清晰了。官方文档可以看这个中文的,比较快一些 https://go-zh.org/doc/
其次参考这个Go指南,练习一遍 https://tour.go-zh.org/welcome/1
现在对Go语言应该有了一个全面的认识,然后你再结合Go语言圣经这本书,深入理解Go的基础。
Go语言圣经中文版 https://www.gitbook.com/book/yar999/gopl-zh/details
然后通过《Go语言实战》这本书,In Action系列都是比较经典的,看这本书的实习可以参考我《Go语言实战》这本书的读书笔记,一共近30篇文章,15万字,非常全面,书里没有的我这里也讲到了很多。这里列其中几篇:
- Go语言开发环境搭建详解
- Go语言实战笔记(一)| Go包管理
- Go语言实战笔记(五)| Go 切片
- Go语言实战笔记(九)| Go 接口
- Go语言实战笔记(十三)| Go 并发资源竞争
- Go语言实战笔记(二十)| Go Context
- Go语言实战笔记(二十四)| Go 反射
- Go语言实战笔记(二十六)| Go unsafe 包之内存布局
最终再通过一些别的第三方库源代码和实践,就可以完全掌握了。我最近也在分析一些经典库,可以保持关注:
- Go语言经典库使用分析(一)| 开篇
- Go语言经典库使用分析(二)| Gorilla Context
- Go语言经典库使用分析(三)| Gorilla Handlers 详细介绍
- Go语言经典库使用分析(四)| Gorilla Handlers 源代码实现分析
- Go语言经典库使用分析(五)| Negroni 中间件(一) - 飞雪无情的博客
- Go语言经典库使用分析(六)| Negroni 中间件(二)
- Go语言中间件框架 Negroni 的静态文件处理源码分析 - 飞雪无情的博客
- Go语言经典库使用分析(七)| 高性能可扩展 HTTP 路由 httprouter - 飞雪无情的博客
- Go语言经典库使用分析(八)| 变量数据结构调试利器 go-spew - 飞雪无情的博客
- Golang Gin 实战(一)| 快速安装入门
- Golang Gin 实战(二)| 简便的Restful API 实现
- Golang Gin 实战(三)| 路由参数
- Golang Gin 实战(四)| URL查询参数的获取和原理分析
- Golang Gin 实战(五)| 接收数组和 Map
- Golang Gin 实战(六)| 获取Form表单参数和原理分析
基础进阶:
- 一个简单的Golang实现的HTTP Proxy
- 一个简单的Golang实现的Socket5 Proxy
- GitHub上优秀的Go开源项目
- 从Java到Golang快速入门
- Golang必备技巧:接口型函数
- Go语言爬虫抓取拉勾职位--提升找工作成功概率
- Go语言 | Go 1.9 新特性 Type Alias详解
- Go语言生成二维码是如此简单
- Go语言中new和make的区别
- Go语言中自动选择json解析库
- golang goquery selector(选择器) 示例大全
- Go语言中使用正则提取匹配的字符串
- Go语言参数传递是传值还是传引用
- Go语言性能优化-两数之和算法性能研究 - 飞雪无情的博客
- Go语言性能优化- For Range 性能研究 - 飞雪无情的博客
- Go语言字符串高效拼接(一) - 飞雪无情的博客
- Go语言字符串高效拼接(二) - 飞雪无情的博客
- Go语言字符串高效拼接(三) - 飞雪无情的博客
- 【译】Go 语言实践:编写可维护的程序的建议 - 飞雪无情的博客
- Go语言slice的本质-SliceHeader - 飞雪无情的博客
- Go语言(golang)的错误(error)处理的推荐方案 - 飞雪无情的博客
- Go语言(golang)新发布的1.13中的Error Wrapping深度分析 - 飞雪无情的博客
- 一步步提升Go语言生成随机字符串的效率