学习 Go 语言的必备书签
由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!
我最近休息几天,所以整理了一份 Go 语言学习资源清单,希望能利用这段时间提升自己的 Go 开发水平。希望这份清单也能对你有所帮助。等我们把清单上的内容都学完,相信我们对这门语言的熟悉程度都会大大提高!
基本面
- 如何编写 Go 代码
快速入门指南(以防您需要)!
https://golang.org/doc/code
- 有效
我认为时不时地以不同的技能水平重读一遍《Effective Go》文档是个非常好的主意。就我而言,我现在从中获得的理解和收益,与我之前第一次阅读时的理解相比,简直天壤之别。你接触过的 Go 代码库越多,阅读这份文档时就能获得越多的启发。https
://golang.org/doc/effective_go.html
- 代码审查意见
我最近发现了这份文档,正如描述所说,它是对《Effective Go》一书的很好的补充。文档中有很多值得注意的有趣注释,在进行代码审查(或编写自己的代码!)时非常有用。https
://github.com/golang/go/wiki/CodeReviewComments
- 标准库
由于标准库规模并不庞大,因此深入了解它非常必要。掌握足够的知识可以避免你为了完成一些本可以在标准库中轻松实现的任务而误用第三方库。https
://golang.org/pkg/#stdlib
另外,请记住语言规范可以提供帮助
:https://golang.org/ref/spec
棘手的部分
- 指针
深入实践之后,我不得不承认,一开始有些要点很难理解。如果你想要一个全面且易于理解的讲解,可以看看李俊敏(Junmin Lee)的精彩视频
:https://www.youtube.com/watch?v =sTFJtxJXkaY
- 基准测试和分析
我几乎可以肯定,如果你选择用 Go 语言,主要原因之一就是为了编写高性能代码。然而,事情并非总能如你所愿,当问题出现时,了解如何进行基准测试和性能分析将为你带来巨大优势。这个内容丰富的研讨会包含了许多关于这方面的精彩信息。https
://dave.cheney.net/high-performance-go-workshop/gophercon-2019.html
技巧、窍门和常见陷阱
尽管 Go 语言的规范相当简短,但这并不意味着它是一门简单的语言。我认为 Go 实际上很难……或者至少很难掌握。用 Go 编写代码确实很容易,我认为这解释了它的流行,但如果你的目标不仅仅是编写“随便什么”的代码,而是编写符合惯用语、精确、简洁且易于理解的代码,那么你最好做好准备,了解 Go 的一些特性,才能编写出最好的代码。这里有两篇关于这个主题的好文章。
-
Go 语言的阴暗角落
https://rytisbiel.com/2021/03/06/darker-corners-of-go/ -
Go 语言的 50 种常见错误
http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/
基于项目的学习
有时,你想深入了解许多关键部分(例如模型、接口等),但又不想做简单的练习或教程。在这种情况下,最理想的选择是完成一个像下面这样的大型项目教程:
- 使用 ScyllaDB 和 Kafka 的 HTTP 服务器 https://www.youtube.com/watch?v=IS9Erqkx-ks&list=PLGRs9mrW62D1I4SF1p03zNn0x2WSSFhOA
您还可以在这里找到一系列篇幅较长的指导性教程:
- Gophexercises https://gophercises.com/
戈朗大学
列表即将结束,这里是Bitfield Consulting的 John Arundel 整理的三份播放列表,它们可以作为很好的通用资源,并提供三种不同的技能级别。
图书
最后,该说说书籍了。我喜欢书籍,因为它们的信息质量远高于许多在线教程。当然,有些书籍的内容很容易过时,但如果你选择的内容合适,从中学习到的知识往往是永恒的。例如,最初的《Go 程序设计语言》一书可能没有关于模块的最新最全的信息,但这部分内容你可以自己去研究,而且这并不影响这本书作为 Go 语言最佳入门读物的价值。
话虽如此,还是有几部作品吸引了我的注意。
- 解释器/编译器手册
《解释器之书》及其续作《编译器之书》是两本指导你如何为一种虚构语言编写解释器(和编译器)的资源。这个想法非常有趣,我一定要把它列入我的“待办事项”清单。https
://interpreterbook.com/
https://compilerbook.com/
- 实用围棋课程
这本优秀的资源几乎可以完全替代列表中的其他资源。它篇幅适中,涵盖了编写 Go 代码所需的一切知识。本书的 HTML 版本免费,但您也可以购买纸质版或电子版来支持作者。强烈推荐收藏!
https://www.practical-go-lessons.com

