Skip to content

📖 Go 程序员面试笔试宝典 | 从问题切入,串连 Go 语言相关的所有知识,融会贯通。 https://golang.design/go-questions

License

Notifications You must be signed in to change notification settings

golang-design/go-questions

Repository files navigation

logo

Go 程序员面试笔试宝典

作者: 饶全成, 欧长坤, 楚秦 等编著
ISBN: 978-7-111-70242-9
出版社机械工业出版社

购买链接

关于本站

这个站点包含了纸质版图书中的部分内容、对纸质版图书内容的部分更新以及勘误, 我们推荐读者购买实体书籍配合本站共同使用。

致读者

因为 Go 语言在服务端的开发效率、服务性能有着不俗的表现,最近几年,Go 的热度越来越高。国内外很多大公司都在大规模地使用 Go。Google 就不用说了,它是 Go 语言诞生的地方,其他公司 如 Meta(Facebook)、uber、腾讯、字节跳动、知乎、脉脉等都在拥抱和转向 Go。用 Go 语言开发的著名开源项目也非常多,如 k8s、docker、etcd、consul,每个名字都是如雷贯耳。

随着市场对 Go 语言人才需求的不断增长,很多开发人员都从其他语言,如 PHP、C++、Java 等 转投 Go 语言的怀抱。因为 Go 语言自身的特点和优势,这些转型的开发人员也能写出性能不错的代码。但是,由于没有深入系统地学习 Go 的底层原理,在某些场景下,因为不懂底层原理,无法快速定位问题、无法进行性能优化。

有些人说,语言并不重要,架构、技术选型这些才是根本。笔者觉得这个说法不完全对,架构、技术选型固然重要,但语言其实是开发人员每天都要打交道的东西,会用是远远不够的,只有用好、知其所以然才能更全面地发挥其威力。

近一两年,笔者在中文世界论坛里发表了很多篇与 Go 源码阅读相关的文章,也是在写作本书的过程中做的功课。我通过看源码、做实验、请教大牛,对 Go 的“理解”逐渐加深。再去看很多文章就会感觉非常简单,为什么这些我都能掌握? 因为我研究过,我知道原理是什么,所以也知道你想要说什么。

最后,无论你是面试官,还是求职者,这本书都能让你有所收获。另外,本书内容不仅仅是对面试有帮助,所有写 Go 的程序员都能从本书中有所收获,能让你的 Go 水平真正上升一个台阶。

致谢

在写作本书的过程中,我和本书的二作欧长坤有很多交流讨论,他对 Go 的理解非常深,他同时也是 Go Contributor,我们的交流和讨论让我对很多问题有了更深入的理解, 非常感谢。我从 Go 夜读社区 的分享中学到了很多东西。并且我本人也担任讲师,分享了多期 Go 相关的内容,很多观众都表示很有帮助。教是最好的学,我本人的收获是最多的。感谢 Go 夜读社区的发起者杨文及 SIG 小组成员煎鱼傲飞。另外,我和 “Go 圈” 的很多博客作者也有很多交流,比如曹大Draven 大神收获良多,在此一并感谢。这两年,我在 “码农桃花源” 发表了很多文章,得到了很多读者的肯定,这也是我能不断写作的动力,感谢你们。

交流和勘误

我们在这里维护了一份已出版内容的勘误表,以帮助并消除读者在阅读过程中出现的困惑。 读者还可以本书的 GitHub 仓库 里讨论关于本书内容的问题,或报告并提交本书存在的错误。

我们欢迎你在 GitHub 仓库上发起 Issues 或提交 Pull Request

我们也欢迎你关注 “码农桃花源” 的公众号,和更多的人一起学习:

logo

作者的其他技术分享视频

主题 作者 观看链接
Go defer 和逃逸分析 饶全成 YouTuBe, Bilibili
Go map 源码阅读 饶全成 YouTuBe, Bilibili
Go Scheduler 源码阅读 饶全成 YouTuBe, Bilibili
Go channel & select 源码阅读 欧长坤 YouTuBe, Bilibili
CSP 理解顺序进程间通信 欧长坤 YouTuBe, Bilibili
真实世界中的 Go 程序并发错误 欧长坤 YouTuBe, Bilibili
Go 1.14 time.Timer 源码分析 欧长坤 YouTuBe, Bilibili
Go 2 泛型预览 欧长坤 YouTuBe, Bilibili
对 Go 程序进行可靠的性能测试 欧长坤 YouTuBe, Bilibili
Go 1.18 的泛型 欧长坤 YouTuBe, Bilibili

许可

知识共享许可协议

Go 程序员面试笔试宝典 由 饶全成, 欧长坤, 楚秦等 采用署名-非商业性使用-禁止演绎 4.0 国际许可协议许可
严禁任何商业行为使用或引用该文档的全部或部分内容,特授权 golang.design/go-questions 发布