大家好,我是老表,今天给大家分享一本Go语言相关图书《Go语言设计与实现》。作者用了两年时间来打磨这本书。新书预售前 3 天销量破千。获得了极高的销量和关注度,读者豆瓣评分高达 9.5 分。是近期新书中,备受读者关注的一本。
如果你正准备学习 Go 语言,那就跟随我们的脚步来了解一下 Go 语言和左老师的书吧。
说起 Go 语言,它是 2009 年诞生,至今已发展了 10 多年。三位主要创始人 Robert Griesemer、Rob Pike 和 Ken Thompson 选择了极其简单的设计来设计这个语言,所以编程稍微有些经验的开发者就能在短时间内快速上手。(选自谷歌,从左到右分别是 Robert Griesemer,Rob Pike 和 Ken Thompson)
其内置的 Goroutine 和 Channel 等特性也可以让开发者轻松利用机器上的多个 CPU。尽管 Go 语言本身的出身和设计都很优秀,但是这门语言要想走进更多人的视野,被广大开发者熟知,仍然需要一些契机。2010 年前后,容器技术作为基础设施开始登上历史舞台。2013 年,Docker 作为明星级容器开源项目发布,随后成为 Go 语言发展的重要助推器。Docker 社区选择 Go 作为开发语言让更多人看到了这门语言,并认识到:Go 有足够的能力实现生产级的应用程序。目前的 Go 语言在国内外的社区都非常热门,Kubernetes、etcd 和 Prometheus 等框架都使用 Go 语言开发,热门的微服务架构和云原生技术也为 Go 语言社区带来了非常多的活力。并且根据 HackerEarth 对来自 76 个国家和地区的 16000 多名开发者的调查显示,Go 成为 2020 年最受欢迎的编程语言。
左老师在初中时就开始接触编程,起因是父母为了不让他沉迷游戏,给了他一本 C 语言的编程书看。初次接触编程令他震撼,在一个黑框里操作计算机完成特定指令,当时在他看来是一件很神奇的事情。
上大学后,他学习了 iOS 客户端开发。当时用 Objective-C 在手机上编写小程序。整个大学四年,他还学习了 Ruby、Lisp、Haskell 等编程语言。2018年,他开始真正学习和使用 Go 语言。刚开始接触 Go 语言时,他觉得 Go 语言的设计比较“简陋”而且表达能力低下,严重影响了开发效率,所以是有些排斥和拒绝的。但是随着对 Go 语言的深入学习和理解,他的观念发生了很大的改变。Go 语言的简单性也有极大的好处,那就是由它编写的应用程序相对容易维护,就算是开发者对这门语言不熟悉,也大概率可以写出让其他人看得懂的代码。Go 语言不是一门完美的编程语言,它在选择使用运行时解决调度和内存管理等问题的同时,一定会放弃执行上的部分性能。事实上,它的性能也确实无法与 C++ 匹敌。但它可以在保证性能的前提下,利用内置的代码格式化工具、依赖管理工具以及更快的编译速度解放工程师的生产力,让大家有更多时间思考业务逻辑,而不是如何管理依赖和编译程序。
目前的市面上分析 Go 语言实现的书籍较少,多数的书籍都偏重于 Go 语言基础和实战。虽然目前有很多分析 Go 语言的博客,但是它们却都面临以下的两个问题:大量博客会成段的展示源代码的实现细节,没有提供较好的可读性;少部分博客的质量较高,它们对 Go 语言的一些模块讲解的比较深入,但是不够系统,不能形成足够丰富、完整的内容;除了上述的这些原因之外,目前关心 Go 语言设计以及演进的博客和书籍比较罕见,然而理解 Go 语言的发展史是帮助我们深入理解语言的有效途径,我们不应该忽视这一过程。
本书主要内容可以分成四个主要部分,共计 9 章内容:调试源代码、编译原理、数据结构、语言特性、常用关键字、并发编程、内存管理、元编程和标准库,几乎涵盖了 Go 语言从编译到运行的方方面面。书中的代码片段基于 Go 1.15。大家可以按照准备工作、基础知识、核心知识和进阶知识的划分顺序来学习。
通过阅读本书,读者不仅能够深入理解 Go 语言的实现细节,而且可以深刻认识设计背后的原因,同时提升阅读源代码的技能。
最早接触 Draven 是发现 GoCN 社区的很多 Gopher 在转发他的公众号文章,里面有不少内容是关于 Go 的细节实现和原理的,得到了大量 Gopher 的认可和喜爱。后来得知 Draven 以开源书的形式详细地展现了 Go 的整个实现和原理,图文并茂的讲解方式为 Gopher 所津津乐道 。非常高兴看到这本书终于出版了,期待成为 GoCN 社区的一本经典之作。
一一谢孟军,GoCN 社区创始人、积梦智能 CEO
早在研究 Go 运行时原理的时候,我就读到过 Draven 的文章,可谓内容丰富、图文并茂。我想他应该是花了大量时间钻研,才能以一种比较简单的方式把复杂的原理和实践代码的优化讲清楚。强烈推荐一读,对于大家后续业务研发、系统研发都有参考和借鉴意义。了解原理才能走得更远!
一一毛剑,bilibili 基础架构部负责人
《Go语言设计与实现》比较详细地讲解了Go语言的各个知识点,对于 Gopher 体系化梳理 Go 语言的原理和用法有比较大的帮助!
一一万俊峰 Kevin,go-zero 作者
希望这本书中关于 Go 的总结和思考,不仅能够帮助你掌握 Go,也能帮助你深入理解为什么它会成为设计与实现现代容器系统、控制平面甚至 laC 系统的首选。
一一张磊,CNCF TOC成员
翔实的逻辑表达、深入的技术钻研和精彩的配图呈现,让这本书在众多图书中脱颖而出!本书不仅是不可多得的技术提升读物一一非常适合从应用开发转型或者期待加深语言底层理解的 Go 爱好者阅读,也非常适合收藏。
一一无闻
现在最新的书籍已经上架京东,可以扫码直接购买!
你有使用过Go语言编程吗?聊聊你对 Go 语言的看法?留言上墙的小伙伴我们随机选取 2 位送上这本《Go语言设计与实现》。
截止时间:2021.12.25
赠书由图灵教育提供。
让我知道你“在看”哦☟