目录

tony白专栏推荐的学习资源

💡 这是tony白专栏里推荐的资料,其中官网,推荐的几本书,都很好的,youtube视频,还有播客也不错的。只是推荐的那个几个博客不是很好,也不怎么更新了。自己把这些资料好好看看,就已经不错了!

推荐几本书

the way to go

中文版翻译 github

《The Way To Go》是我早期学习 Go 语言时最喜欢翻看的一本书。这本书成书于 2012 年 3 月,恰逢 Go 1.0 版本刚刚发布,当时作者承诺书中代码都可以在 Go 1.0 版本上编译通过并运行。这本书分为 4 个部分:

  • 为什么学习 Go 以及 Go 环境安装入门;

  • Go 语言核心语法;

  • Go 高级用法(I/O 读写、错误处理、单元测试、并发编程、socket 与 web 编程等);

  • Go 应用(常见陷阱、语言应用模式、从性能考量的代码编写建议、现实中的 Go 应用等)。

每部分的每个章节都很精彩,而且这本书也是我目前见到的、最全面详实的、讲解 Go 语言的书籍了,可以说是 Gopher 们的第一本“Go 百科全书”。

可以说是 Gopher 们的第一本“Go 百科全书”。不过遗憾的是,这本书没有中文版。这可能是由于这本书出版太早了,等国内出版社意识到要引进 Go 语言方面的书籍的时候,这本书使用的 Go 版本已经太老了。不过,这本书中绝大部分例子依然可以在今天最新的 Go 编译器下通过编译并运行起来。好在 Gopher无闻在 GitHub 上发起了这本书的中译版项目,如果你感兴趣的话,可以去 GitHub 上看或下载阅读。这本书虽然很棒,但毕竟年头“久远”,所以我也只能委屈它一下了,将它列在推荐榜的第五位

这本书我已经下载了。导入到ipad上看看。那么多电子书去看啊!去学啊!

Go 101- Go 语言参考手册

/go基础/20230426203840.png

这本书也有下过,好好看看!go101~github Go语言101

如果只从书名中的 101 去判断,你很大可能会认为这仅仅是一本讲解 Go 入门基础的书,但这本书的内容可远远不止入门这么简单。这本书大致可以分为三个部分:

  • Go 语法基础;

  • Go 类型系统与运行时实现;

  • 以专题(topic)形式阐述的 Go 特性、技巧与实践模式。

除了第一部分算 101 范畴,其余两个部分都是 Go 语言的高级话题,也是我们要精通 Go 语言必须要掌握的“知识点”。并且,作者结合 Go 语言规范,对每个知识点的阐述都细致入微,也结合大量示例进行辅助说明。

我们知道,C 和 C++ 语言在市面上都有一些由语言作者或标准规范委员会成员编写的 Annotated 或 Rationale 书籍(语言参考手册或标准解读),而《Go 101》这本书,就可以理解为 Go 语言的标准解读或参考手册。Go 101 这本书是开源电子书,它的作者也在国外一些支持自出版的服务商那里做了付费数字出版。这就让这本书相对于其他纸板书有着另外一个优势:与时俱进。在作者的不断努力下,这本书的知识点更新基本保持与 Go 的演化同步,目前书的内容已经覆盖了最新的 Go 1.17 版本。

Go语言学习笔记

这本书我已经下了。之前在南京图书馆看到,写的很好。好好看一看!

《Go 语言学习笔记》是一本在国内影响力和关注度都很高的作品。一来,它的作者雨痕老师是国内资深工程师,也是 2015 年第一届 GopherChina 大会讲师;二来,这部作品的前期版本是以开源电子书的形式分享给国内 Go 社区的;三来,作者在 Go 源码剖析方面可谓之条理清晰,细致入微

2016 年《Go 语言学习笔记》的纸质版出版,覆盖了当时最新的 Go 1.5 版本。Go 1.5 版本在 Go 语言演化历史中的分量极高,它不仅实现了 Go 自举,还让 Go GC 的延迟下降到绝大多数应用可以将它应用到生产的程度。这本书整体上分为两大部分:

  • Go 语言详解:以短平快、“堆干货”的风格对 Go 语言语法做了说明,能用示例说明的,绝不用文字做过多修饰;

  • Go 源码剖析:这是这本书的精华,也是最受 Gopher 们关注的部分。这部分对 Go 运行时神秘的内存分配、垃圾回收、并发调度、channel 和 defer 的实现原理、sync.Pool 的实现原理都做了细致的源码剖析与原理总结。

Go 语言实战

这本书我也有 ,再次看专栏才知道,自己还有那么多东西没掌握!这些电子书我都有的啊!

/go基础/20230426204702.png

Manning 出版社出版的“实战系列(xx in action)”一直是程序员心中高质量和经典的代名词。在出版 Go 语言实战系列书籍方面,这家出版社也是丝毫不敢怠慢,邀请了 Go 社区知名的三名明星级作者联合撰写。这三位作者分别是:

  • 威廉·肯尼迪 (William Kennedy) ,知名 Go 培训师,培训机构 Ardan Labs 的联合创始人,“Ultimate Go”培训的策划实施者;
  • 布赖恩·克特森 (Brian Ketelsen) ,世界上最知名的 Go 技术大会 GopherCon 大会的联合发起人和组织者,
  • GopherAcademy创立者,现微软 Azure 工程师;埃里克·圣马丁 (Erik St.Martin) ,世界上最知名的 Go 技术大会 GopherCon 大会的联合发起人和组织者。

《Go 语言实战》这本书并不是大部头,而是薄薄的一本(中文版才 200 多页),所以你不要期望从本书得到百科全书一样的阅读感。而且,这本书的作者们显然也没有想把它写成面面俱到的作品,而是直击要点,也就是挑出 Go 语言和其他语言相比与众不同的特点进行着重讲解。这些特点构成了这本书的结构框架:

  • 入门:快速上手搭建、编写、运行一个 Go 程序;
  • 语法:数组(作为一个类型而存在)、切片和 map;
  • Go 类型系统的与众不同:方法、接口、嵌入类型;
  • Go 的拿手好戏:并发及并发模式;标准库常用包:log、marshal/unmarshal、io(Reader 和 Writer);
  • 原生支持的测试。

读完这本书,你就掌握了 Go 语言的精髓之处,这也迎合了多数 Gopher 的内心需求。而且,这本书中文版译者李兆海也是 Go 圈子里的资深 Gopher,翻译质量上乘。

人手一本的 Go 语言“圣经”

如果说由Brian W. Kernighan和Dennis M. Ritchie联合编写的《The C Programming Language》(也称 K&R C)是 C 程序员(甚至是所有程序员)心目中的“圣经”的话,那么同样由 Brian W. Kernighan(K) 参与编写的《The Go Programming Language》(也称tgpl)就是 Go 程序员心目中的“圣经”。

/go基础/20230426205010.png

这本书我也有,看看自己看了多少了?这么多东西不去看,不去学!一天到晚想干什么?就想一步到位,吃快餐?

这本书模仿并致敬“The C Programming Language”的经典结构,从一个"hello, world"示例开始带领大家开启 Go 语言之旅。

第二章程序结构是 Go 语言这个“游乐园”的向导图。了解它之后,我们就会迫不及待地奔向各个“景点”细致参观。Go 语言规范中的所有“景点”在这本书中都覆盖到了,并且由浅入深、循序渐进:从基础数据类型到复合数据类型,从函数、方法到接口,从创新的并发 Goroutine 到传统的基于共享变量的并发,从包、工具链到测试,从反射到低级编程(unsafe 包)。

作者行文十分精炼,字字珠玑,这与《The C Programming Language》的风格保持了高度一致。而且,书中的示例在浅显易懂的同时,又极具实用性,还突出 Go 语言的特点(比如并发 web 爬虫、并发非阻塞缓存等)。

读完这本书后,你会有一种爱不释手,马上还要从头再读一遍的感觉,也许这就是“圣经”的魅力吧!

这本书出版于 2015 年 10 月 26 日,也是既当年中旬 Go 1.5 这个里程碑版本发布后,Go 社区的又一重大历史事件!并且 Brian W. Kernighan 老爷子的影响力让更多程序员加入到 Go 阵营,这也或多或少促成了 Go 成为下一个年度,也就是 2016 年年度 TIOBE 最佳编程语言。能得到 Brian W. Kernighan 老爷子青睐的编程语言只有 C 和 Go,这也是 Go 的幸运。

这本书的另一名作者 Alan A. A. Donovan 也并非等闲之辈,他是 Go 核心开发团队的成员,专注于 Go 工具链方面的开发。

现在唯一遗憾的就是 Brian W. Kernighan 老爷子年事已高,不知道 Go 1.18 版本加入泛型语法后,老爷子是否还有精力再更新这本圣经。

这本书的中文版由七牛云团队翻译,总体质量也是不错的。建议 Gopher 们人手购置一本圣经“供奉”起来!

Go官方文档

Go 官方文档中的Go 语言规范Go module 参考文档Go 命令参考手册Effective GoGo 标准库包参考手册以及Go 常见问答等都是每个 Gopher 必看的内容。我强烈建议你一定要抽出时间来仔细阅读这些文档。

这些内容真的很好!那么多官方的文档和资料!再次看这个专栏,确实学到了很多!

Go相关博客

Go 语言官网blogGo 核心团队关于 Go 语言的权威发布渠道;

Go 语言百科全书:由欧长坤维护的 Go 语言百科全书网站。

GoCN 社区;感觉不是很新,更新的很慢,我看了一下,很多都是2月份的了。

Go 语言培训机构 Ardan Labs 的博客;

Go 鼓吹者 Dave Cheney 的个人博客; 感觉也不是很新了

Go 技术演讲

go播客

使用播客这种形式作编程语言类相关内容传播的资料并不多,能持续进行下去的就更少了。目前我唯一关注的就是 changelog 这个技术类播客平台下的Go Time 频道。这个频道有几个 Go 社区知名的 Gopher 主持,目前已经播出了 200 多期,每期的嘉宾也都是 Go 社区的重量级人物,其中也不乏像 Go 语言之父这样的大神参与。

Go 技术演讲,也是我们学习 Go 语言以及基于 Go 语言的实践的优秀资料来源。关于 Go 技术演讲,我个人建议以各大洲举办的 GopherCon 技术大会为主,这些已经基本可以涵盖每年 Go 语言领域的最新发展。下面我也整理了一些优秀的 Go 技术演讲资源列表,你可以参考:

Go 官方的技术演讲归档,这个文档我强烈建议你按时间顺序看一下,通过这些 Go 核心团队的演讲资料,我们可以清晰地了解 Go 的演化历程;

GopherCon 技术大会,这是 Go 语言领域规模最大的技术盛会,也是 Go 官方技术大会;

GopherCon Europe 技术大会;

GopherConUK 技术大会

GoLab 技术大会

Go Devroom@FOSDEM;

GopherChina 技术大会,这是中国大陆地区规模最大的 Go 语言技术大会,由 GoCN 社区主办。