https://github.com/golang/go/wiki/Books
Go小书 免费
http://openmymind.net/The-Little-Go-Book/
《The Little Go Book》是对 Google Go 编程语言的免费介绍。它面向可能对指针不太适应和静态类型的想法不太满意的开发人员。它比其他小书篇幅长一些,但希望仍然能捕捉到那种很短小的感觉。
Go编程简介 免费
http://www.golang-book.com/
这本书是关于使用Go语言编程的简短介绍。Go 是由 Google 设计,是一种具有现代功能、整洁的语法和强大的文档齐全的公共库的通用编程语言,使其成为学习第一种编程语言的理想语言。
这本书可以免费Go编程简介-在线阅读[1]或Go编程简介-pdf格式[2]。
Go 训练营 免费
http://www.golangbootcamp.com/
这本配套书包含最初专门为此活动编写的材料,以及来自 Google 和 Go 团队在知识共享署名 3.0 许可下的内容和在 BSD 许可下许可的代码。
学习Go 免费
http://www.miek.nl/go
初学Golang的可以选择的一本在线书籍,有很多练习和答案。
learninggo MarkDown源文件[3]
面向Javascript开发者的Go教程 免费
https://github.com/pazams/go-for-javascript-developers
这本书主要面向Javascripters ,概述了两种语言之间的差异从而使得来回切换语言变得更加容易,并且有助于减少来回切换语言时带来的一些潜在问题。
通过测试学习Go 免费
https://quii.gitbook.io/learn-go-with-tests/
通过测试学习Golang,学习Go语言的一个新的特性可以通过写测试用例,让它通过,然后重构和重复修改代码。这样你可以打好测试驱动开发的基础,并了解其背后的原理。
Go 101 免费
https://go101.org/article/101.html
Go 101是一本专注于Go语法/语义和各种与运行时相关的东西(Go 1.17-pre ready)的书,试图帮助gopher们对Go有一个深入透彻的了解。这本书还收集了Go和Go编程中的许多细节。希望这本书对初学者和有经验的Go程序员都有帮助。
Go实战
https://www.manning.com/books/go-in-action
这本书介绍了Go语言,并引导你从一个对Go好奇的开发者变成Go大佬。这本书首先介绍了Go语言的独特特点和概念。(我们假设你已经掌握了另一种编程语言,所以不要指望花很多时间再次学习你已经知道的东西。然后,你会收获编写现实中的应用程序(包括网站和网络服务器)的实际经验,并且会让你拥有令人嫉妒的快速操纵和转换数据技术的能力。在最后几章中,你会深入了解Go语言,并了解Go大佬们在应用程序中运用的一些技巧和秘密。例如,你会学习使用Go语言强大的反射库,并使用与C语言集成的一些真实实例。
Go编程蓝本书
https://www.packtpub.com/application-development/go-programming-blueprints-second-edition
这本书主要展示了如何构建强大的系统,并让你置身于真实环境中。可扩展、高性能和高可用性一直是我们项目的核心,贯穿本书的经验教训可以为你提供构建世界一流解决方案所需要的东西。
用Go编程: 创建21世纪的应用程序
http://www.informit.com/store/programming-in-go-creating-applications-for-the-21st-9780321774637
这本书汇集了对Go的评价、在Go中思考以及使用Go编写高性能软件所需的所有知识。Summerfield 做了多种习惯用法的对比,准确地展示了Go是如何改进旧语言的,并呼吁人们特别关注Go语言的关键创新。一路走来,他解释了很多,从基础知识到Go的基于无锁通道的并发性,以及它灵活而不寻常的面向对象的鸭子类型安全方法。
Go编程语言
http://gopl.io/
这本书是任何一个想学习Go的程序员的权威资源。Alan A. A. Donovan 和Brian W. Kernighan 向你展示了如何写出清晰而地道的Go来解决现实世界的问题。这本书没有假设对Go知识的提前了解,也没有任何特定语言的基础,所以无论你喜欢JavaScript、Ruby、Python、Java还是C++,你会发现它是简单好学的。
这本书以数百个有趣而实用的Go代码示例为特色,涵盖了整个语言、其最重要的库和广泛的应用程序。源代码可以从这本书的配套网站上免费下载gopl.io[4],也可以方便地使用go get
命令去拉取、构建和安装。
介绍Go:构建可靠、可扩展的程序
http://shop.oreilly.com/product/0636920046516.do
这本书很适合有编程基础知识的初学者,本实践指南提供了对Go的简单介绍,Go是谷歌发明的通用编程语言。作者Caleb Doxsey在每一章都用一步一步的指导和练习来覆盖语言的核心特性,来帮助你练习你所学的东西。
通过Go学编程
https://www.manning.com/books/get-programming-with-go?utm_source=nathany&utm_medium=affiliate&utm_campaign=book_youngman_get_9_17_18&a_aid=nathany&a_bid=53f68821
这本书介绍强大的Go语言,不会混淆行话或高级理论。通过学习32堂速战速决的课程,你会很快掌握Go语言的基础知识!
通过例子学Go编程
https://www.amazon.com/dp/B00TWLZVQQ/ref=cm_sw_em_r_mt_dp_hL5bGbWM00XG6
Go通常被称为golang,是一种编程语言,最初于2007年在谷歌开发。这本书帮助你开始使用Go编程。它描述了语言的所有元素,并用代码示例说明了它们的用法。
Go食谱
http://www.apress.com/us/book/9781484211892
使用问题解决方法来解决你的Go问题。每个recipe 都是Go中一个实际编程问题的独立答案。这本书包含了处理Go基本原理的recipe ,允许你编译简单、可靠和高效的软件。其他主题包括了使用现代NoSQL数据库(如MongoDB和RethinkDB)处理数据。这本书为在Go中为你的移动客户端应用程序和网络客户端应用程序构建高度可扩展的后端API提供了深入的指导。
学习Go编程
https://www.packtpub.com/application-development/learning-go-programming
这本书是一本旨在帮助新手和经验丰富的程序员学习Go编程语言的书。这本书提炼了语言规范、文档、博客、视频、幻灯片和作者的写作经验。并详细细地提供了一些适当的深度内容和见解,来帮助你理解语言及其设计。
Go中的API基础
https://leanpub.com/api-foundations
通过这本书,你会学会使用Go,利用它的多线程特性和类型化语法。在Go中开始你的API实现是你迈向坚如磐石的API的第一步。
如何使用Go编程
https://www.digitalocean.com/community/books/how-to-code-in-go-ebook
这本书旨在向你介绍如何使用Go编程语言进行编写程序。你会学习到如何编写有用的工具和应用程序,这些工具和应用程序可以运行在远程服务器上,也可以运行在本地的Windows、macOS和Linux系统上进行开发。这里提供了如何使用Go编程-电子书[5]和如何使用Go编程-PDF[6]。
热爱Go:基础
https://bitfieldconsulting.com/books/fundamentals
这本可下载的电子书是对Go编程语言的互动式介绍,完全适合初学者。它介绍了Go中测试驱动开发(TDD)的工作流程,并指导你实现完整的Go包,测试优先。你会学会使用多个案例进行测试,以及如何测试可能返回错误的函数。
Go工场
https://www.packtpub.com/product/the-go-workshop/9781838647940
《The Go Workshop》会减轻你学习Go编程语言时的痛苦。它旨在教你在构建真实世界的软件时提高效率。这本书以一种引人入胜的实践方式介绍了专业人士在日常工作中使用Go的特性。
高级编程书籍推荐
Go测试驱动开发 free
https://leanpub.com/golang-tdd
golang测试驱动开发的简短指南。Go测试驱动开发在线免费阅读[7]
Go安全编程练习指南 free
https://checkmarx.gitbooks.io/go-scp/
这本书的主要目标是帮助开发人员避免常见的错误,同时通过“实践方法”学习一种新的编程语言。这本书提供了关于“如何安全地做到这一点”的详细信息,展示了在开发过程中会出现哪些安全问题。
Go领域驱动的应用:用Go构建现代商业化软件 free
https://threedots.tech/go-with-the-domain/
《Go with the Domain》是一本关于构建以常用方式解决复杂问题的Go应用程序的书。它以领域驱动设计、整洁架构、CQRS(命令查询责任分离)和其他模式等技术为特色。
这本书是基于一个wild-workouts-go-ddd-example 开源项目[8]。各个章节主要通过项目的重构来展示常见的反模式以及如何避免它们。
Go网络编程 free
https://www.apress.com/us/book/9781484226919
主要深入探讨网络架构和 Go 中的一些关键主题,如数据序列化、应用层协议、字符集和编码。这本书涵盖了网络架构,并概述了作为入门的Go语言,涵盖了最新的Go版本。
除了基础知识,使用Go进行网络编程还涵盖了关键的网络和安全问题,如HTTP和HTTPS、模板、远程过程调用(RPC)、网络套接字(包括HTML5网络套接字)等。
Go网络编程
https://nostarch.com/networkprogrammingwithgo
使用Go进行网络编程将帮助你利用Go编写安全、可读、生产就绪的网络代码。使用Go进行网络编程是你利用Go内置的并发性、快速编译和丰富的标准库所需要的一切。
掌握Go并发编程
http://shop.oreilly.com/product/9781783983483.do
这本书将带你了解并发的历史,Go如何利用它,Go如何不同于其他语言,以及Go并发核心的特性和结构。每一步,这本书都会给出真实的、可用的例子,并详细描述所使用的方法。最后,你会觉得在Go中设计一个安全、数据一致、高性能的并发应用程序很正常。
Go实战
http://www.manning.com/butcher/
《Go in Practice》指导你在包管理、微服务通信等关键领域使用数十种真实技术。遵循cookbook风格的问题/解决方案/讨论格式,这本实用手册建立在Go语言的基础概念上,并介绍了你可以在日常应用中使用的具体策略。你将学习构建web服务的技术、在云中使用Go、测试和调试、路由、网络应用程序等等。
一个Go开发者的笔记
https://leanpub.com/GoNotebook/
一位开发者关于Golang的经验总结。
Go编程语言常用手册
http://www.informit.com/store/go-programming-language-phrasebook-9780321817143
经过测试、易于修改的代码示例阐明了Go开发的每一步,帮助你编写高度可扩展的并发软件。你将掌握特定于Go的常用用法,用于处理字符串、集合、数组、错误处理、Goroutines、切片、Map、Channel、数字、日期、时间、文件、网络、网络应用程序、运行时等。
Go设计模式
https://www.packtpub.com/application-development/go-design-patterns
通过使用TDD,学习常用的、高效的、整洁的和可扩展的Go设计和并发模式。
Go黑帽
https://www.oreilly.com/library/view/black-hat-go/9781098122645/
在这本书中你将学习如何在Go中编写强大而有效的渗透测试工具,Go是一种因速度和可扩展性而备受尊崇的语言。首先介绍Go基础知识,如数据类型、控制结构和错误处理;然后,具备深入Go语言的底层能力。
Go并发编程
http://shop.oreilly.com/product/0636920046189.do
众所周知,并发性很难处理好,但幸运的是,Go开源编程语言使得处理并发性变得很容易甚至更容易。如果你是一个熟悉Go的开发人员,这本实用的书展示了最佳实践和模式来帮助你将并发性融入到你的系统中。
Go依赖注入实践
https://amzn.to/2Q6dLQC
这本书带你踏上旅程,教你采用依赖注入(DI)使用 Go 中可用的各种方法重构现有代码,。
在本书介绍的六种方法中,有些是常规的,如构造函数或方法注入,有些是非常规的,如即时注入或配置注入。每种方法都有详细的解释,重点是它们的优点和缺点,并逐步说明如何应用。通过大量的例子,你将学习如何利用DI将代码转换成简单灵活的东西。
Go中的手动依赖注入采用了一种务实的方法,非常注重代码、用户体验以及如何通过增量更改实现长期收益。
Go软件编程实践
https://www.packtpub.com/gb/programming/hands-on-software-engineering-with-golang
这本Golang书籍提炼了编写易于测试和维护的精益Go代码的行业最佳实践,并通过从头开始创建一个名为Links ‘ R ‘ Us的多层应用程序来帮助你探索其实际实现。你会学到设计、实现、测试、部署和扩展应用程序的所有步骤。从单体架构开始,你会迭代更新将项目转换为支持大链接图的高效核外处理的面向服务的架构(SOA)。
你将了解各种尖端和先进的软件工程技术,例如构建可扩展的数据处理管道、使用gRPC设计APIs以及大规模运行分布式图形处理算法。最后,你将学习如何使用Docker编译和打包你的Go服务,并自动将其部署到Kubernetes集群。
Go宇宙之旅 free
https://blasrodri.github.io/spaceship-go-gh-pages/
《Spaceship Go》是一本Go标准库的学习教程。为了理解它们为什么有用,以及它们在底层是如何实现的,我们探索了几个关键的包。它作为该语言提供的一些关键可用工具和原语的参考,这对于编写高性能和常用的代码非常有帮助。
Go安全
https://www.packtpub.com/product/security-with-go/9781788627917
《Go安全》是第一本关于Golang安全的书籍,对蓝队和红队应用都很有用。通过这本书,你将学会如何编写安全软件、监控系统、保护数据、攻击系统和提取信息。
防御主题包括加密、取证、数据包捕获和构建安全的web应用程序。
攻击性主题包括暴力、端口扫描、数据包注入、网页抓取、社会工程和后期利用技术。
Web开发
使用Go构建Web应用程序 free
https://www.gitbook.com/book/codegangsta/building-web-apps-with-go/details
一个开始用Go构建网络应用程序的好资源。自由地使用Go构建Web应用程序|在线阅读[9]。
使用Golang构建Web应用程序 free
https://www.gitbook.com/book/astaxie/build-web-application-with-golang/details
另一本学习Go网络开发的好书。自由地使用Golang构建Web应用程序-在线阅读[10]
Go anti textbook的Web应用 free
https://github.com/thewhitetulip/web-dev-golang-anti-textbook
这本书是为了教那些对Go有所了解并对网络应用有基本了解的人如何在Go中开发网络应用而写的。你会学到在不使用第三方框架和尽可能少使用外部库的情况下构建webapp。这样做的好处是,当你在没有框架的情况下编写代码时,你会学到很多东西。
掌握Go Web服务
http://shop.oreilly.com/product/9781783981304.do
本书将带你了解利用常用的REST实践设计、构建和部署web服务的最重要方面,重点是速度、安全性和灵活性。你将从使用HTTP包在Go中构建你的第一个API开始。你将看到设计和构建你的应用程序,包括流行的设计结构,如模型-视图-控制器。你还将了解将代码部署到stage和dev环境的方法。最后,你将看到如何使用Go中的安全特性来防止SQL注入和敏感数据泄露。
使用Go升级你的Web应用程序
https://learnable.com/books/level-up-your-web-apps-with-go
这本书为你提供了在网络应用中使用Go所需的一切。你将学习基本概念——语言结构、标准库和Go工具——然后处理更高级的特性,如并发概念、测试方法和包结构。
在每一章节,你都会得到更好的建议。你将看到如何构建项目、如何有效地使用并发性、测试的最佳实践,以及从使用Go开发web应用程序的实际经验中收获到的许多其他提示和技巧。
Go Web编程
http://www.manning.com/chang/
Go网络编程会教你如何使用现代设计原理在Go中构建网络应用程序。你将通过大量的例子介绍核心概念,如处理请求和发送响应、模板和数据持久性。你还将深入探讨更高级的主题,例如并发性、web应用程序测试以及准系统服务器和PaaS提供商的部署。
构建基于Go和React云原生Web应用和微服务
https://www.informit.com/store/cloud-native-go-building-web-applications-and-microservices-9780672337796
如今,公司和开发商需要以极快的速度应对不断变化的市场。不是建立在高可用性、快速发展的软件上的的组织正在走灭亡的路。云原生Go汇集了开发人员构建大规模云应用程序所需的知识,能够满足当今客户和市场永不满足的需求。
Go Web开发: 用Go学习来创建真实的应用
https://www.usegolang.com/
使用Go进行网络开发是为了教初学者和专家如何创建和部署一个真正的网络应用程序。你不会构建一个样板TODO列表,而是从头开始创建和部署一个生产就绪的照片库应用程序,类似于Pixieset。这本书假设没有以前的网络开发经验,涵盖了成功构建自己的网络应用程序所需了解的一切。
构建GoWeb程序
https://amzn.com/B01LD8K5C0
本课程是一个宝贵的资源,可以帮助你了解Go构建简单、可靠、安全和高效的网络应用程序的强大功能。
用Go构建微服务
https://www.packtpub.com/application-development/building-microservices-go
无论你是计划一个新的应用程序,还是在一个现有的项目中工作,这本书都将通过实际的例子来解释和说明各种规模的团队是如何开始用微服务解决问题的。它将帮助你理解Docker和Docker-Compose,以及如何使用它来隔离微服务依赖和构建环境。最后,我们向你展示了监控、测试和治理微服务的各种技术。
Docker 和 Go 的 12 Factor 应用程序
https://leanpub.com/12fa-docker-golang
这本书充满了如何使用Docker和Go创建最终的12factor应用程序的例子。它涉及到各个步骤十二Factor应用[11]指南以及如何使用Go和Docker实现它们。
用Go构建SaaS应用
https://buildsaasappingo.com
我们将一起构建一个强大的、以API优先的、可重用的代码库,适用于构建SaaS或普通的web应用程序。这本书的最后,你将有一个坚实的框架作为以后项目的起点。
Let’s Go!
https://lets-go.alexedwards.net/
让我们开始一步步教你开始如何使用Go创建快速、安全和可维护的网络应用程序。它指导你从头到尾构建一个真实的应用程序,涵盖了如何构建代码、管理依赖关系、对用户进行身份验证和授权、保护服务器和测试应用程序等主题。
Go脑筋急转弯
https://gum.co/Qkmou
Go是一种简单的语言,但像所有其他语言一样,它也有自己的特点。这本书利用这些特性作为教学机会。通过了解你的知识差距,你会变得更擅长你所做的事情。
这本书包含了25个智力测验和答案。你可以查看Go脑筋急转弯示例章节[12]。
用TinyGo和WebAssembly来DIY你的微控制器项目
https://www.packtpub.com/product/creative-diy-microcontroller-projects-with-tinygo-and-webassembly/9781800560208
虽然Go通常被认为是一种快速而紧凑的编程语言,但它难以会在低内存或低功耗设备(如微控制器或物联网)上创建和运行的大型可执行文件。TinyGo是一种新的编译器,允许开发人员为这种低功耗设备编译程序。由于TinyGo支持Go编程语言的所有标准特性,你不必调整代码来适应微控制器。
这本书是一本充满有趣的DIY项目的实践指南,将向你展示如何构建嵌入式应用程序。你将学习如何对传感器进行编程,以及如何使用Arduino UNO和Arduino Nano IoT 33等微控制器。接下来的章节将向你展示如何使用各种流行设备(如发光二极管、7段显示器和定时器)开发多个真实世界的嵌入式项目。接下来,你将逐步构建交互式原型,如交通灯系统、非接触式洗手计时器等。随着你的前进,你将创建一个天气警报系统的物联网原型,并在TinyGo WASM仪表板上显示这些警报。最后,你将构建一个家庭自动化项目,在TinyGo WASM仪表板上显示统计数据。
在这本微控制器书的最后,你将掌握使用TinyGo的力量构建真实世界的嵌入式项目所需的技能。
掌握Go第2版
https://www.packtpub.com/programming/mastering-go-second-edition
这本书是帮助业余和中级Go程序员的Go知识更上一层楼,以及在其他编程语言有经验的开发人员准备的,他们想学习Go没有学习一遍如何for
循环有效。
这本书介绍了相对较小但完整的Go程序,说明了提出的概念。这有两个主要优点:第一,当你试图学习一种技术时,你不必看无穷无尽的代码清单,第二,当你创建自己的应用程序和实用程序时,你可以把这段代码作为一个起点。
Go分布式服务:可靠、可扩展和可维护的系统指南
https://pragprog.com/titles/tjgo/distributed-services-with-go/
通过学习如何设计、开发和部署分布式服务,让你的Go技能更上一层楼。从存储处理的最基本要素开始,逐步将客户端和服务器联网,将单节点应用程序转变为具有服务发现和共识的分布式系统,然后将服务部署到云中。所有这些都将使日常工作或辅助项目中的编码变得更容易、更快、更有趣。
其他资源
Golang教程资源
https://webia.io/topic/golang-learning-resources
Go之旅
视频:一个视频教你学会Go语法
http://www.youtube.com/watch?v=CF9S4QZuV30
教程:通过例子学习Go
Go基础视频教学
http://shop.oreilly.com/category/learning-path/go-fundamentals.do
Go Wiki上的更多书籍
https://github.com/golang/go/wiki/Books
TutorialEdge.net的课程
https://tutorialedge.net/course/golang/
Coursera专业课程:使用Go编程
https://www.coursera.org/specializations/google-golang/
课程:深入理解Go的机制
https://www.udemy.com/course/learn-go-the-complete-bootcamp-course-golang/?referralCode=5CE6EB34E2B1EF4A7D37
课程:掌握Go编程
https://www.udemy.com/course/mastering-go-programming
课程:使用Go编程语言做网络开发
https://www.udemy.com/course/go-programming-language
Golangbot.com文章
最后感谢大家阅读,书单翻译花费了作者不少功夫,如果觉得本文不错的话可以分享给朋友。你的支持就是我的动力,谢谢。
参考资料
[1]
Go编程简介-在线阅读: http://www.golang-book.com/
[2]
Go编程简介-pdf格式: http://www.golang-book.com/public/pdf/gobook.pdf
[3]
learninggo MarkDown源文件: https://github.com/miekg/learninggo
[4]
gopl.io: http://gopl.io/
[5]
如何使用Go编程-电子书: https://assets.digitalocean.com/books/how-to-code-in-go.epub
[6]
如何使用Go编程-PDF: https://assets.digitalocean.com/books/how-to-code-in-go.pdf
[7]
Go测试驱动开发在线免费阅读: https://leanpub.com/golang-tdd/read
[8]
wild-workouts-go-ddd-example 开源项目: https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-example
[9]
使用Go构建Web应用程序|在线阅读: http://codegangsta.gitbooks.io/building-web-apps-with-go/content/
[10]
使用Golang构建Web应用程序-在线阅读: http://astaxie.gitbooks.io/build-web-application-with-golang/content/en/index.html
[11]
十二Factor应用: https://github.com/dariubs/GoBooks/blob/master/12factor.net
[12]
Go脑筋急转弯示例章节: https://www.353solutions.com/go-brain-teasers
[13]
GO开发和汇编教程:https://colobu.com/
GoLang开发:http://c.biancheng.net/view/6124.html
GoLand环境配置:https://www.136.la/shida/show-328298.html