关注公众号【程序员书单】后回复“book”即可领取 30+ 精品免费电子书
Go 是一种简单、小巧、令人愉悦的语言。它也有一些犄角旮旯,但绝大部分是经过精心设计的。它的学习速度令人难以置信,并且规避了其他语言中一些不那么广为人知的特性。
现如今越来越多的互联网公司开始使用 go 语言,有的初创公司开始使用 go 语言打造基础架构,而知乎这样的公司也基本上踏上了 go 语言的路子,或许,未来的互联网公司会越来越多地使用 golang,那么,你想学习一下这门未来的语言么,今天就来推荐一份 go 语言书单吧。
go 语言系列书单
Go 语言核心编程
Go 语言的核心语言特性包括:类型系统、接口、并发。这三部分是 Go 语言精华、优美、也是重要的特征,本书紧密围绕这三个主题展开。以“类型系统”为例,Go 语言中的类型有:简单类型、复合类型、命名类型、未命名类型、静态类型、动态类型、底层类型、接口类型、具体类型以及类型字面量等诸多概念,这些概念在其他 Go 类图书里面鲜有介绍,本书试图帮助读者梳理清楚这些类型的含义,建立概念,认清类型本质并学会正确使用;
在接口章节,不单介绍了接口概念和用法,还深入分析了接口的机制,使读者对 Go 语言非侵入式的接口有更深入的理解;在并发编程章节,书中给出了 5 个并发编程范式,并用图描述并发程序的模型,通俗易懂,这也是本书读特点。
此外本书还拿出一整章内容介绍 Go 语言编程过程中可能遇到的陷阱,不仅告诉读者陷阱是什么,正确使用方式是什么,同时也给出出现这种问题的根本原因,使读者后续能够避免犯同样的错误。本书最后从哲学角度论述下 Go 语言的编程思想,相信 Go 语言爱好者一定可以从书中找到自己感兴趣内容
作者介绍
李文塔,现就职于腾讯,FiT(前身为财付通)支付账户核心 DBA,高级工程师。近十年金融系统开发、运维经验,先后参与 2016 年到 2018 年微信春节红包项目和支付账户核心多地多活容灾项目。
Go 语言高级编程
本书从实践出发讲解 Go 语言的进阶知识。本书共 6 章,第 1 章简单回顾 Go 语言的发展历史;第 2 章和第 3 章系统地介绍 CGO 编程和 Go 汇编语言的用法;第 4 章对 RPC 和 Protobuf 技术进行深入介绍,并讲述如何打造一个自己的 RPC 系统;第 5 章介绍工业级环境的 Web 系统的设计和相关技术;第 6 章介绍 Go 语言在分布式领域的一些编程技术。
书中还涉及 CGO 和汇编方面的知识,其中 CGO 能够帮助读者继承的软件遗产,而在深入学习 Go 运行时,汇编对于理解各种语法设计的底层实现是必不可少的知识。此外,本书还包含一些紧跟潮流的内容,介绍开源界流行的 gRPC 及其相关应用,讲述 Go Web 框架中的基本实现原理和大型 Web 项目中的技术要点,引导读者对 Go 语言进行更深入的应用。
本书适合对 Go 语言的应用已经有一些心得,并希望能够深入理解底层实现原理或者是希望能够在 Web 开发方面结合 Go 语言来实现进阶学习的技术人员学习和参考。
作者简介
柴树杉,国内较早的一批 Go 语言爱好者,Go 语言代码贡献者。对 WebAssembly 技术有一定研究,除本书外还著有《WebAssembly 标准入门》一书。GitHub 账号为 chai2010。
曹春晖,在 Web 领域工作多年,开源爱好者。对大型网站系统的架构和相关工具的实现很感兴趣,并且有一些研究成果。目前在滴滴平台技术部工作。
Go Web 编程
本书全面介绍使用 Go 语言开发 Web 应用所需的全部基本概念,并详细讲解如何运用现代设计原则使用 Go 语言构建 Web 应用。本书通过大量的实例介绍核心概念(如处理请求和发送响应、模板引擎和数据持久化),并深入讨论更多高级主题(如并发、Web 应用程序测试以及部署到标准系统服务器和 PaaS 提供商)。
本书以一个网络论坛为例,讲解如何使用请求处理器、多路复用器、模板引擎、存储系统等核心组件构建一个 Go Web 应用,然后在这一应用的基础上,构建出相应的 Web 服务。
值得一提的是,本书在介绍 Go Web 开发方法时,基本上只用到 Go 语言自带的标准库,而不会用到任何特定的 Web 框架,读者学到的知识将不会局限于特定的框架,即使将来需要用到现成的框架或者自行构建框架,仍然会从本书中获益。
本书除了讲解具体的 Web 开发方法,还介绍如何对 Go Web 应用进行测试,如何使用 Go 的并发特性提高 Web 应用的性能,以及如何在 Heroku、Google App Engine、Digital Ocean 等云平台上部署 Go Web 应用;此外,书中还传授一些 Go Web 开发方面的经验和提示。这些重要的实践知识将帮助读者快速成为真正具有生产力的 Go Web 开发者。
阅读本书需要读者具备基本的 Go 语言编程技能并掌握 Go 语言的语法。本书适合所有想用 Go 语言进行 Web 开发的读者阅读,无论是 Web 开发的初学者还是入行已久的开发者都会在阅读本书的过程中有所收获。
作者简介
作者简介
Sau Sheong Chang 既是新加坡能源有限公司的数字技术总裁,也是 Ruby 社区以及 Go 社区的活跃贡献者,著有《Go Web 编程》《R 和 Ruby 数据分析之旅》等 4 部著作。
译者简介
黄健宏(huangz),一位 1990 年出生的计算机技术图书作译者,《Redis 设计与实现》一书的作者,《Redis 实战》一书的译者。除了已出版的两本作品之外,他还创作和翻译了《Go 标准库中文文档》《Redis 命令参考》《SICP 解题集》等一系列开源文档。要了解关于黄健宏的更多信息,请访问他的个人主页 http://huangz.me。
Go 并发编程实战
本书首先介绍了 Go 语言的优秀特性、安装设置方法、工程结构、标准命令和工具、语法基础、数据类型以及流程控制方法,接着阐述了与多进程编程和多线程编程有关的知识,然后重点介绍了 goroutine、channel 以及 Go 提供的传统同步方法,最后通过一个完整实例——网络爬虫框架进一步阐述 Go 语言的哲学和理念,同时分享作者在多年编程生涯中的一些见解和感悟。
与上一版相比,本书不仅基于 Go 1.8 对上一版进行了全面更新,而且更深入地描绘了 Go 运行时系统的内部机理,并且大幅改进了示例代码。
本书适用于有一定计算机编程基础的从业者以及对 Go 语言编程感兴趣的爱好者,非常适合作为 Go 语言编程进阶教程。
作者简介
作者
郝林,从业 12 年有余的软件工匠,国内知名的 Go 语言技术布道者,Go 语言北京用户组和 GoHackers 社群的发起人和组织者,多套免费在线 Go 语言教程的作者,深信 Go 语言在人工智能时代和机器人时代也能大放异彩的科技信徒。