Go书籍大全-从初级到高级以及Web开发

原文链接:GitHub - dariubs/GoBooks: List of Golang books

原文作者:Dariush Abbasi

1. 前言

我使用Go开发已经有一年左右时间了,由于有C开发的经验,从学习到上手大概花费了一周左右的时间,目前主要是利用GoFrame和Gin框架开发一些网关设备上的Web后端以及利用Go写一些流媒体相关的客户端和服务端,但是总感觉少了点什么,个人感觉可能是看的书比较少,对于Go开发掌握的不够,所以这里找了一些书籍,打算看书做更多的项目来实践一下。总的来说,Go的开发效率是很高的,很多时候给我的感觉就像在写简化的C,静态链接的方式也避免了编译时大量找依赖库的麻烦。

以下是我在GitHub上找到的Go书籍推荐的文章,这里翻译一下供大家借鉴,我也想根据书籍的内容来看一下自己大概是什么一个水平。(这些书籍涵盖命令行应用、云原生、分布式、微服务、devOps应用、web应用、mcu嵌入式应用以及安全应用、网络应用等等如何使用Go进行开发)

2. 书籍

2.1 入门书籍

2.1.1 The Little Go Book(Go小书-免费)

Little Go Book 是对 Google 的 Go 编程语言的免费介绍。 它面向可能对指针和静态类型不太满意的开发人员。它比其他小书要长,但希望仍能捕捉到那种小小的感觉。

2.1.2 An Introduction to Programming in Go(Go编程简介-免费)

本书是对使用 Go 语言进行计算机编程的简短介绍。Go 由 Google 设计,是一种通用编程语言,具有现代特性、简洁的语法和健壮的文档齐全的公共库,使其成为您学习的第一门编程语言的理想语言。

本书可以免费 read online or pdf form.(在线阅读或获取PDF版本)

2.1.3 Go Bootcamp(Go训练营-免费)

这本配套书包含最初专门为此活动编写的材料,以及来自 Google 和 Go 团队在知识共享署名 3.0 许可下的内容和在 BSD 许可下许可的代码。

2.1.4 Learning Go(学习Go语言-免费)

一本开始学习 Golang 的在线书籍。它具有许多练习(和答案)。

The markdown source is available on Github.

2.1.5 Go for Javascript Developers(JS开发者如何成为Go开发者-免费)

这本书帮助 Javascripters 成为 Gophers。概述这些语言之间的差异可以更容易地来回切换,并有助于减轻这样做时的潜在问题。

2.1.6 Learn Go With Tests(通过测试学习Go-免费)

在测试的指导下学习 Go。编写测试,学习新的 Go 语言特性以使其通过、重构和重复。您将获得测试驱动开发的基础,并且重要的是了解其背后的原则。

2.1.7 Go 101(免费)

Go 101 是一本专注于 Go 语法/语义和各种运行时相关事物(Go 1.17-pre 就绪)的书,并试图帮助 gophers 深入和彻底地理解 Go。本书还收集了 Go 和 Go 编程的许多细节。 希望本书对初学者和有经验的 Go 程序员都有帮助。

2.1.8 Go, from the beginning(从头开始学习Go-免费)

在本书中,您将学习以下内容:

  • 构建控制台应用
  • 创建 Web API
  • 测试你的代码
  • 创建和发布其他人可以使用的可重用包
  • 在项目中组织文件
  • 处理文件和目录
  • 使用字符串库和正则表达式解析文本。

2.1.9 Practical Go Lessons(实用Go课程)

Practical Go Lessons 有 41 章和 700 多页的插图。它适合任何想用 Go 语言开始编程的人。它假设你没有经验知识。每章都包含带有详细答案的测试题。HTML 版本是免费的。您可以通过购买 PDF 或 Paper 版本来支持作者。

2.1.10 Go in Action(Go实战)

Go in Action 介绍了 Go 语言,引导你从好奇的开发者到 Go 大师。本书首先介绍了 Go 的独特功能和概念。(我们假设你已经掌握了另一种编程语言的速度,所以不要指望花很多时间排练你已经知道的东西。)然后,您将获得编写真实世界应用程序(包括网站和网络服务器)的实践经验,以及以让您的朋友嫉妒的速度操作和转换数据的技术。在最后几章中,您将深入了解 Go 语言,并了解 Go 大师们用来使他们的应用程序执行的技巧和秘密。例如,您将学习使用 Go 强大的反射库并使用与 C 代码集成的真实示例。

2.1.11 Go Programming Blueprints - 2nd Ed.(Go编程蓝图-第二版)

这本书向您展示了如何构建强大的系统并让您进入现实世界的情况。规模、性能和高可用性是我们项目的核心,本书中的经验教训将为您提供构建世界级解决方案所需的一切。

2.1.12 Programming in Go: Creating Applications for the 21st Century(Go 编程:为 21 世纪创建应用程序)

用 Go 编程汇集了评估 Go、用 Go 思考和用 Go 编写高性能软件所需的所有知识。Summerfield 提供了多个成语比较,准确地展示了 Go 如何改进旧语言,呼吁特别关注 Go 的关键创新。 在此过程中,他解释了从绝对基础到 Go 的基于通道的无锁并发及其灵活且不寻常的鸭子类型安全方法到面向对象的所有内容。

2.1.13 The Go Programming Language(Go编程语言)

Go 编程语言是任何想要学习 Go 的程序员的权威资源。Alan A. A. Donovan 和 Brian W. Kernighan 向您展示了如何编写清晰而惯用的 Go 来解决现实世界的问题。本书不假定您具有 Go 的先验知识或使用任何特定语言的经验,因此无论您最熟悉 JavaScript、Ruby、Python、Java 还是 C++,您都会发现它很容易上手。

本书包含数百个有趣且实用的惯用 Go 代码示例,涵盖了整个语言、其最重要的库和广泛的应用程序。源代码可从本书的配套网站 gopl.io 免费下载,并且可以使用 go get 命令方便地获取、构建和安装。

2.1.14 Introducing Go: Build Reliable, Scalable Programs(介绍Go)

这本动手指南非常适合熟悉编程基础的初学者,简单介绍了 Google 的通用编程语言 Go。作者 Caleb Doxsey 介绍了该语言的核心功能,并在每章中提供了分步说明和练习,以帮助您练习所学内容。

2.1.15 Get Programming with Go(使用 Go 进行编程)

Get Programming with Go 向您介绍了强大的 Go 语言,而不会混淆行话或高级理论。 通过 32 节速成课程,您将快速掌握创新 Go 编程语言的基础知识!

2.1.16 Go Programming by Example(通过示例进行Go编程)

Go,通常称为 golang,是一种编程语言,最初于 2007 年由 Google 开发。这本书帮助你开始使用 Go 编程。它描述了语言的所有元素,并通过代码示例说明了它们的使用。

2.1.17 Go Recipes(Go食谱)

使用问题解决方法解决您的Go问题。 每个秘籍都是对 Go 中实际编程问题的自包含答案。Go 食谱包含处理 Go 基础知识的食谱,允许您构建简单、可靠和高效的软件。其他主题包括使用现代 NoSQL 数据库(如 MongoDB 和 RethinkDB)处理数据。本书为在 Go 中为您的移动客户端应用程序和 Web 客户端应用程序构建高度可扩展的后端 API 提供了深入的指导。

2.1.18 Learning Go programming(学习Go编程)

学习 Go 编程是一本旨在帮助新手和经验丰富的程序员进入 Go 编程语言的书。本书将语言规范、文档、博客、视频、幻灯片和作者的写作经验提炼成内容,精心提供适当的深度和见解,以帮助您理解语言及其设计。

2.1.19 API Foundations in Go(Go 中的 API 基础)

通过本书,您将学习使用 Go,利用它的多线程特性和类型化语法。在 Go 中开始你的 API 实现是你迈向坚如磐石的 API 的第一步。

2.1.20 How to Code in Go(如何进行Go编码-免费)

本书旨在向您介绍使用 Go 编程语言编写程序。您将学习如何编写可以在远程服务器或本地 Windows、macOS 和 Linux 系统上运行以进行开发的有用工具和应用程序。Available in epub and pdf.

2.1.21 For the Love of Go(热爱Go)

这本书向完全的初学者以及有一些其他语言编程经验的人介绍了 Go。它解释了 Go 中的测试驱动开发 (TDD),如何使用包括结构、切片和映射在内的数据类型,还展示了如何使用方法和指针向对象添加行为。包括数十个代码挑战,具有完整的解决方案和测试。

2.1.22 The Go Workshop(Go工作坊)

Go Workshop 将消除学习 Go 编程语言(也称为 Golang)的痛苦。它旨在教您高效地构建现实世界的软件。本书以引人入胜的动手方式呈现,重点介绍专业人士在日常工作中使用的Go功能。

2.1.23 Learning Go: An Idiomatic Approach to Real-World Go Programming(学习Go)

Go 正迅速成为构建 Web 服务的首选语言。虽然有很多教程可以向具有其他编程语言经验的开发人员教授 Go 的语法,但教程还不够。他们不教授 Go 的习语,因此开发人员最终会重新创建在 Go 上下文中没有意义的模式。本实用指南提供了编写清晰和惯用的 Go 所需的基本背景。

无论您的经验水平如何,您都将学习如何像 Go 开发人员一样思考。作者 Jon Bodner 介绍了经验丰富的 Go 开发人员采用的设计模式,并探讨了使用它们的基本原理。您还将预览 Go 即将推出的泛型支持以及它如何融入该语言。

  • 学习如何在 Go 中编写惯用代码并设计 Go 项目
  • 理解 Go 中设计决策的原因
  • 为独立开发人员或团队设置 Go 开发环境
  • 了解如何以及何时使用反射、unsafe和 cgo
  • 探索 Go 的特性如何让语言高效运行
  • 知道应该谨慎使用或根本不使用哪些 Go 功能

2.1.24 Pro Go(Go编程)

从基础开始,逐步构建最先进和最复杂的功能。 您将了解 Go 如何构建在简单且一致的类型系统上,以创建全面且高效的开发体验,从而生成跨平台运行的快速且强大的应用程序。

  • 深入了解 Go 语言和工具
  • 深入了解 Go 标准库
  • 将 Go 用于并发/并行任务
  • 使用 Go 进行客户端和服务器端开发

2.1.25 Go for DevOps(Go和DevOps)

Go 是 DevOps 库和服务的首选语言,没有它,实现快速安全的自动化是一项挑战。在 Go for DevOps 的帮助下,您将学习如何轻松安全地交付服务,并在此过程中成为更好的 DevOps 工程师。

本书将教给你的一些关键内容是如何编写 Go 软件来自动化配置管理、更新远程机器、在 GitHub Actions 中编写自定义自动化以及与 Kubernetes 交互。随着章节的推进,您将探索如何使用软件开发工具包 (SDK) 实现云自动化,使用 Go 扩展 HashiCorp 的 Terraform 和 Packer,使用 gRPC 和 REST 开发您自己的 DevOps 服务,设计系统代理,并构建强大的工作流 系统。

在这本 Go for DevOps 书籍的最后,您将了解如何应用开发原则来自动化操作并使用 Go 提供操作见解,这将使您能够在客户意识到出现问题之前快速做出反应以解决系统故障。

2.1.26 gRPC Microservices in Go(Go中的gRPC微服务)

在过去的十年里,我们听到了关于单体应用到微服务转换的故事,我们可能认为这种转换解决了组织中的大部分问题。但是,如果您不了解这种过渡的最佳实践,它可能最终会变得一团糟,因为微服务架构带来了挑战。在本书中,我们开始介绍微服务架构的生产级最佳实践,并解释何时使用它。然后我们讨论 gRPC 登场的微服务通信模式。您将看到用 Go 编写的完整示例,并将六边形架构应用于项目结构。您不仅将学习如何实现微服务,还将了解如何编写测试、使用适当的 CI 保持质量、部署到 Kubernetes 环境并最终建立一个可观察的系统以更好地监控您的应用程序。

2.2 进阶书籍

2.2.1 Building Distributed Applications in Gin(在 Gin 中构建分布式应用程序)

Gin 是一个高性能的 HTTP Web 框架,用于在 Go 中构建 Web 应用程序和微服务。本书旨在借助实际示例教您 Gin 框架的来龙去脉。

在继续构建真实世界的 RESTful API 之前,您将首先探索 Gin 框架的基础知识。 在此过程中,您将学习如何编写自定义中间件并了解路由机制,以及如何绑定用户数据和验证传入的 HTTP 请求。本书还演示了如何使用 MongoDB 等 NoSQL 数据库大规模存储和检索数据,以及如何使用 Redis 实现缓存层。接下来,您将了解如何使用 OAuth 2 和 JWT 等身份验证协议保护和测试 API 端点。 后面的章节将指导您在服务器端渲染 HTML 模板并使用 React Web 框架构建前端应用程序以使用 API 响应。最后,您将在 Amazon Web Services (AWS) 上部署您的应用程序,并了解如何使用持续集成和持续交付 (CI/CD) 管道自动化部署过程。

在这本 Gin 书的最后,您将能够使用 Gin 框架从头开始设计、构建和部署一个生产就绪的分布式应用程序。

2.2.2 Test-driven development with Go(使用 Go 进行测试驱动开发-免费)

golang 中测试驱动开发的简短指南。free to read online.

2.2.3 Go programming language secure coding practices guide(Go安全开发编程指南-免费)

本书的主要目标是帮助开发人员避免常见错误,同时通过“动手方法”学习新的编程语言。这本书提供了关于“如何安全地做到这一点”的详细信息,展示了开发过程中可能出现的安全问题。

2.2.4 Go with the Domain: Building Modern Business Software in Go(Go领域:用Go构建现代商业软件-免费)

Go with the Domain 是一本关于构建以惯用方式解决复杂问题的 Go 应用程序的书。它具有领域驱动设计、清洁架构、CQRS(命令查询职责分离)和其他模式等技术。

The book is based on a real open source project. 章节通过项目的重构来展示常见的反模式以及如何避免它们。

2.2.5 Network Programming with Go(Go网络编程)

深入研究网络架构和 Go 中的关键主题,例如数据序列化、应用程序级协议、字符集和编码。 这本书涵盖了网络架构,并概述了 Go 语言作为入门,涵盖了最新的 Go 版本。

除了基础知识之外,使用 Go 进行网络编程还涵盖了关键的网络和安全问题,例如 HTTP 和 HTTPS、模板、远程过程调用 (RPC)、包括 HTML5 Web 套接字的 Web 套接字等等。

2.2.6 Network Programming with Go(Go网络编程)

使用 Go 进行网络编程将帮助您利用 Go 编写安全、可读、可用于生产的网络代码。使用 Go 进行网络编程是您利用 Go 的内置并发、快速编译和丰富的标准库所需要的一切。

2.2.7 Mastering Concurrency in Go(掌握 Go 中的并发性)

本书将带您了解并发的历史、Go 如何使用它、Go 与其他语言的不同之处以及 Go 并发核心的特性和结构。 本书的每一步都将提供真实可用的示例,并详细描述所使用的方法。到最后,你会在 Go 中设计一个安全的、数据一致的、高性能的并发应用程序时感到自豪。

2.2.8 Go in Practice(Go实践)

Go in Practice 指导您了解包管理、微服务通信等关键领域的数十种实际技术。遵循食谱风格的问题/解决方案/讨论格式,这本实用手册建立在 Go 语言的基本概念之上,并介绍了您可以在日常应用程序中使用的特定策略。您将学习构建 Web 服务、在云中使用 Go、测试和调试、路由、网络应用程序等技术。

2.2.9 A Go Developer's Notebook(Go 开发者的笔记本)

一个开发者在 golang 方面的经验。

2.2.10 The Go Programming Language Phrasebook(Go编程语言手册)

经过测试、易于调整的代码示例阐明了 Go 开发的每一步,帮助您编写高度可扩展的并发软件。您将掌握用于处理字符串、集合、数组、错误处理、goroutine、切片、映射、通道、数字、日期、时间、文件、网络、Web 应用程序、runtime等的特定于 Go 的习惯用法。

2.2.11 Go Design Patterns(Go设计模式)

使用 TDD 学习惯用、高效、干净和可扩展的 Go 设计和并发模式。

2.2.12 Black Hat Go(黑帽Go)

在 Black Hat Go 中,您将学习如何在 Go 中编写功能强大且有效的渗透测试工具,Go 是一种因其速度和可扩展性而备受推崇的语言。首先介绍 Go 基础知识,例如数据类型、控制结构和错误处理;然后,深入了解 Go 的进攻能力。

2.2.13 Concurrency in Go(Go并发)

众所周知,并发很难正确处理,但幸运的是,Go 开源编程语言使并发处理变得容易处理甚至容易。如果您是熟悉 Go 的开发人员,这本实用的书将展示最佳实践和模式,以帮助您将并发性整合到您的系统中。

2.2.14 Hands-On Dependency Injection in Go(Go 中的手动依赖注入)

Go 中的动手操作依赖注入将带您踏上一段旅程,教您使用 Go 中可用的各种方法重构现有代码以采用依赖注入 (DI)。

本书介绍的六种方法中,有些是常规的,如构造函数或方法注入,有些是非常规的,如即时或配置注入。每种方法都进行了详细解释,重点介绍了它们的优缺点,并附有如何应用它的分步示例。通过大量示例,您将学习如何利用 DI 将代码转换为简单灵活的代码。

Go 中的手动依赖注入采用务实的方法,重点关注代码、用户体验以及如何通过增量更改来实现长期利益。

2.2.15 Hands-On Software Engineering with Golang(使用 Golang 进行软件工程实践)

这本 Golang 书籍提炼了编写易于测试和维护的精益 Go 代码的行业最佳实践,并通过从头开始创建名为 Links ‘R’ Us 的多层应用程序来帮助您探索其实际实现。将指导您完成设计、实施、测试、部署和扩展应用程序所涉及的所有步骤。从单体架构开始,您将迭代地将项目转换为面向服务的架构 (SOA),以支持大型链接图的高效核外处理。

您将了解各种尖端和先进的软件工程技术,例如构建可扩展的数据处理管道、使用 gRPC 设计 API 以及大规模运行分布式图形处理算法。最后,您将学习如何使用 Docker 编译和打包 Go 服务,并自动将它们部署到 Kubernetes 集群。

2.2.16 Spaceship Go(Go宇宙飞船-免费)

Spaceship Go 是通往 Go 标准库的旅程。探索了几个关键包,以了解它们为何有用,以及它们是如何在后台实现的。它作为该语言提供的一些关键可用工具和原语的参考,这对于编写高性能和惯用的代码非常有帮助。

2.2.17 Security with Go(Go安全)

Security with Go 是第一本 Golang 安全书籍,它对蓝队和红队应用程序都很有用。通过本书,您将学习如何编写安全软件、监控系统、保护数据、攻击系统和提取信息。

防御性主题包括密码学、取证、数据包捕获和构建安全的 Web 应用程序。

攻击性主题包括暴力破解、端口扫描、数据包注入、网络抓取、社会工程和后期利用技术。

2.2.18 Writing An Interpreter In Go(在Go中编写解释器)

在本书中,我们将一起创建一种编程语言。

我们将从 0 行代码开始,并最终得到一个完全工作的 Monkey* 编程语言解释器。

一步步。从令牌到输出。显示并包含所有代码。全面测试。

2.2.19 Writing A Compiler In Go(在Go中编写编译器)

这是用 Go 编写解释器的续集。

我们从上次停下的地方重新开始,为 Monkey 编写编译器和虚拟机。

可运行且经过测试的代码前端和中心,从头开始,一步一步地构建——就像以前一样。

但这一次,我们将定义字节码,编译 Monkey 并在我们自己的虚拟机中执行它。

这是Monkey进化的下一步。

2.2.20 Ultimate Go Notebook(终极Go笔记本)

Ultimate Go Notebook 是 Ardan Labs Ultimate Go 课程的官方配套书籍。

通过本书,您将学习如何编写更惯用且性能更高的代码,重点是微观级工程决策。

该笔记本旨在为课堂上提到的所有内容提供参考,就好像它们是您自己的个人笔记一样。

2.2.21 Efficient Go(高效Go)

今天的软件工程师通常将性能优化放在开发优先级列表的低位。但是,尽管技术进步显着,硬件价格低廉,软件效率仍然很重要。 通过本书,Go 程序员将学习如何处理用这种开源语言编写的应用程序的性能主题。

您应该如何以及何时应用性能效率优化而不浪费时间?作者 Bartlomiej Plotka 和 Frederic Branczyk 提供了您需要的工具和知识,以使用更少的资源使您的系统更快。 一旦你学会了如何在你的 Go 应用程序中解决性能问题,你将能够为你的编程和开发周期带来一些小而有效的习惯。

2.2.22 The Power of Go: Tools(Go的力量:工具)

Go 是编写 DevOps 和系统程序的流行选择,尤其是命令行工具。我们如何在 Go 中编写简单、强大、惯用甚至漂亮的工具? 这本书涵盖了所有必要的技术:功能选项、标志和参数、文件和文件系统、执行命令、编写 shell 和管道、JSON 和 YAML 争论,甚至是复杂的 API 客户端。

更重要的是,本书教你如何像大师级软件工程师一样思考:如何将问题分解为可管理的块,如何在编写函数之前对其进行测试,以及如何设计让用户满意的 Go CLI。

2.2.23 Powerful Command-Line Applications in Go(Go 中强大的命令行应用程序)

使用 Go 编程语言编写您自己的快速、可靠和跨平台的命令行工具。Go 可能是自动化任务、分析数据、解析日志、与网络服务对话或满足其他系统要求的最快——也可能是最有趣的方式。创建用于处理文件、连接到服务和管理外部进程的各种命令行工具,同时使用测试和基准来确保您的程序快速且正确。

2.2.24 100 Go Mistakes and How to Avoid Them(100 个Go错误以及如何避免它们)

100 个 Go 错误以及如何避免它们将重点放在 Go 代码中您可能甚至不知道自己正在犯的常见错误上。您将探索该语言的关键领域,例如并发性、测试、数据结构等,并学习如何避免和修复您自己的项目中的错误。

2.2.25 Effective Go(有效的Go)

Effective Go 是编写易于测试和维护的高质量代码的实用指南。这本书充满了可以采用的最佳实践和要回避的反模式。它探讨了 Go 与其他语言如此显着不同的原因,以及您如何仍能利用现有技能来编写出色的 Go 代码。针对希望毕业以进行认真的 Go 开发的 Go 初学者,您将编写和测试命令行应用程序、Web API 客户端和服务器、并发程序等。

2.2.26 Cloud Native Go - Building Reliable Services in Unreliable Environments(云原生Go)

Docker、Kubernetes 和 Prometheus 有什么共同点?所有这些云原生技术都是用 Go 编程语言编写的。这本实用的书向您展示了如何利用 Go 的优势开发可扩展且具有弹性的云原生服务,即使在不可预测的环境中也是如此。您将探索这些应用程序的组合和构造,从 Go 的低级特性到中级设计模式再到高级架构考虑。

2.2.27 Build an Orchestrator in Go(在 Go 中构建 Orchestrator)

通过使用 Go 和 Docker API 构建您自己的系统,深入了解 Kubernetes 和其他编排系统。

像 Kubernetes 这样的编排系统协调其他软件子系统和服务,以创建一个完整的有组织的系统。尽管编排工具以复杂性着称,但它们是围绕适用于软件开发许多方面的少数重要模式设计的。在 Go 中构建 Orchestrator 通过指导您使用 Go SDK 设计和实现自己的编排框架来揭示编排框架的内部工作原理。 当您创建自己的编排框架时,您将加深对 Kubernetes 及其在分布式系统设计中的作用的理解。当开箱即用的解决方案不适合时,您还将培养设计自定义编排解决方案所需的技能。

2.2.28 Everyday Go

本书是为 Go 开发人员提供的实用示例、课程和技术的汇编。这些主题涵盖了从学习基础知识到软件测试再到分发和监控的软件生命周期。

  • 学习单元测试
  • 制作可爱的 CLI
  • 监控服务
  • 使用 GitHub Actions 发布
  • 与 Docker 一起发布
  • 制定 Goroutines

2.2.29 Practical Go: Building Scalable Network and Non-Network Applications(实用Go)

在 Practical Go - Building Scalable Network + Non-Network Applications 中,您将学习使用 Go 编程语言来构建强大的、可用于生产的软件应用程序。您将学到足够的知识来构建命令行工具和通过 HTTP 和 gRPC 进行通信的应用程序。

本实用指南将涵盖:

  • 编写命令行应用程序
  • 编写 HTTP 服务和客户端
  • 使用 gRPC 编写 RPC 服务和客户端
  • 为网络客户端和服务器编写中间件
  • 在云对象存储和 SQL 数据库中存储数据
  • 使用惯用技术测试您的应用程序
  • 为您的应用程序添加可观察性
  • 管理应用程序的配置数据

您将学习使用结合现代实践编写的动手示例来实施最佳实践。Practical Go 专注于尽可能地使用标准库包,将为您使用 Go 开发大型应用程序提供坚实的基础,从而充分利用语言的生态系统。

2.3 web开发相关书籍

2.3.1 Building Web Apps with Go(用Go开发web app-免费)

开始使用 Go 构建 Web 应用程序的好资源。Free to read online.

2.3.2 Build Web Application with Golang(免费)

另一本在 Golang 中学习 Web 开发的好书。Free to read online

2.3.3 Webapps in Go the anti textbook(免费)

本书旨在向懂一点 Go 并掌握一般 Web 应用程序基本信息的人教授如何使用 Go 开发 Web 应用程序。我们(您)将在不使用第三方框架和尽可能少的外部库的情况下构建 webapp。优点是当你在没有框架的情况下编写代码时你会学到很多东西。

2.3.4 Mastering Go Web Services(掌握Go web服务)

本书将带您了解利用惯用 REST 实践设计、构建和部署 Web 服务的最重要方面,重点是速度、安全性和灵活性。您将首先使用 HTTP 包在 Go 中构建您的第一个 API。您将着眼于设计和构建您的应用程序,包括流行的设计结构,如MVC。您还将了解将代码部署到station和development的方法。最后,您将看到 Go 中的安全功能如何用于防止 SQL 注入和敏感数据泄露。

2.3.5 Level Up Your Web Apps With Go(使用Go升级你的web应用程序)

本书为您提供了在 Web 应用程序中使用 Go 所需的一切。您将学习基本概念——语言结构、标准库和 Go 工具——然后处理更高级的功能,如并发概念、测试方法和包结构。

在每一步,你都会得到更好的 Go 编码建议。您将看到如何构建项目、如何有效地使用并发以及测试的最佳实践——以及从使用 Go 开发 Web 应用程序的实际经验中收集到的许多其他提示和技巧。

2.3.6 Go Web Programming(Go web编程)

Go Web Programming 教你如何使用现代设计原则在 Go 中构建 Web 应用程序。您将通过大量示例来介绍核心概念,例如处理请求和发送响应、模板引擎和数据持久性。您还将深入研究更高级的主题,例如并发、Web 应用程序测试和部署到准系统服务器和 PaaS 提供商。

2.3.7 Cloud Native Go: Building Web Applications and Microservices for the Cloud with Go and React(云原生Go:使用 Go 和 React 为云构建 Web 应用程序和微服务)

今天,公司和开发商需要以惊人的速度应对不断变化的市场。没有建立在高可用性、快速发展的软件之上的组织正在步恐龙的后尘。Cloud Native Go 汇集了开发人员构建满足当今客户和市场永不满足的需求的大规模云应用程序所需的知识。

2.3.8 Web Development with Go: Learn to Create Real World Web Applications using Go

Web Development with Go 旨在教初学者和专家如何创建和部署真正的 Web 应用程序。 您将不会构建样板 TODO 列表,而是从头开始创建和部署类似于 Pixieset 的生产就绪照片库应用程序。本书假设您之前没有 Web 开发经验,并涵盖了成功构建自己的 Web 应用程序所需了解的所有内容。

2.3.9 Go: Building Web Applications

本课程是帮助您了解 Go 的强大功能以构建简单、可靠、安全和高效的 Web 应用程序的宝贵资源。

2.3.10 Building Microservices with Go(用Go构建微服务)

无论您是在计划一个新的应用程序还是在现有的单体应用中工作,本书都将通过实际示例解释和说明各种规模的团队如何开始解决微服务问题。它将帮助您了解 Docker 和 Docker-Compose,以及如何使用它来隔离微服务依赖项和构建环境。最后,我们向您展示了监控、测试和保护微服务的各种技术。

2.3.11 12 Factor Applications with Docker and Go(使用 Docker 和 Go 的 12因素应用程序)

这本书充满了关于如何使用 Docker 和 Go 创建终极 12 Factor 应用程序的示例。It goes over individual steps of The Twelve-Factor App guidelines and how to implement them with Go and Docker.(它详细介绍了十二要素应用指南的各个步骤,以及如何使用 Go 和 Docker 实现它们。)

2.3.12 Build SaaS apps in Go(用Go创建一个Saas app)

我们将一起构建一个强大的、API 优先的、可重用的代码库,适用于构建 SaaS 或 vanilla Web 应用程序。在本书的最后,你将拥有一个坚实的框架,可以作为未来项目的起点。

2.3.13 Let's Go!

Let's Go 一步一步教你如何使用 Go 创建快速、安全和可维护的 Web 应用程序。它指导您从头到尾构建一个真实的应用程序——涵盖如何构建代码、管理依赖项、验证和授权用户、保护您的服务器和测试您的应用程序等主题。

2.3.14 Let's Go Further

Let's Go Further 帮助您扩展和扩展您的 Go 知识——让您超越基础知识,指导您了解开发、管理和部署 API 和 Web 应用程序的高级模式。在本书的最后,您将掌握创建强大且专业的 API 所需的所有知识,这些 API 可充当 SPA 和本地移动应用程序的后端,或充当独立服务。

2.3.15 Go Brain Teasers

Go 编程语言是一种简单的语言,但与所有其他语言一样,它也有其怪癖。本书利用这些怪癖作为教学机会。通过了解你的知识差距 - 你会在你所做的事情上变得更好。

This book contains 25 mind bending quizzes and answers. You can view a sample chapter here.(这本书包含 25 个思维弯曲测验和答案。您可以在此处查看示例章节。)

2.3.16 Creative DIY Microcontroller Projects with TinyGo and WebAssembly(使用 TinyGo 和 WebAssembly 的创意 DIY 微控制器项目)

虽然通常被认为是一种快速而紧凑的编程语言,但 Go 通常会创建难以在低内存或低功耗设备(如微控制器或物联网)上运行的大型可执行文件。TinyGo 是一种新的编译器,允许开发人员为这种低功耗设备编译他们的程序。由于 TinyGo 支持 Go 编程语言的所有标准功能,您无需调整代码以适应微控制器。

本书是一本实用指南,里面充满了有趣的 DIY 项目,将向您展示如何构建嵌入式应用程序。您将学习如何对传感器进行编程以及如何使用 Arduino UNO 和 Arduino Nano IoT 33 等微控制器。接下来的章节将向您展示如何使用各种流行的设备(如 LED、7 段显示器和计时器)开发多个实际嵌入式项目。接下来,您将继续构建交互式原型,例如交通信号灯系统、非接触式洗手计时器等。随着您的前进,您将创建天气警报系统的 IoT 原型,并在 TinyGo WASM 仪表板上显示这些警报。最后,您将构建一个家庭自动化项目,在 TinyGo WASM 仪表板上显示统计信息。

这本微控制器书的最后,您将具备使用 TinyGo 的强大功能构建实际嵌入式项目所需的技能。

2.3.17 Distributed Services with Go Your Guide to Reliable, Scalable, and Maintainable Systems(分布式服务与可靠、可扩展和可维护系统指南)

通过学习如何设计、开发和部署分布式服务,将您的Go技能提升到一个新的水平。从存储处理的基本要素开始,通过将客户端和服务器联网,将单节点应用程序转变为具有服务发现和共识的分布式系统,然后将服务部署到云中。所有这些将使您在日常工作或副项目中的编码更容易、更快、更有趣。

2.3.18 Build Systems with Go: Everything a Gopher Must Know(使用 Go 构建系统:Gopher 必须知道的一切)

Go 生态系统正在帮助开发人员有效地构建分布式和可扩展的系统。如果你打算跳入这个迷人的世界,你必须知道 Go 如何帮助你构建 REST API、使用 SQL/NoSQL 数据库、数据流平台、gRPC、设计你自己的 CLI,或者如何有效地记录你的程序等等一些。用 GO 构建系统:Gopher 必须知道的一切分为两个部分:第一个部分探索 Go 语言及其标准库,第二个部分为读者提供用于任何 Go 开发的最强大库的示例和解释。本书在 GitHub 上提供了 200 多个详细而直接的示例,可帮助早期采用者和经验丰富的开发人员真正了解使用 Go 构建的系统的外观。

2.3.19 Mastering Go, 3rd edition(精通Go,第三版)

这是精通Go的第三版。 在这个最新版本中有许多令人兴奋的新主题,包括编写 RESTful 服务、使用 Websocket 协议、使用 GitHub Actions 和 GitLab Actions 进行 Go 项目,以及关于泛型和许多实用实用程序开发的全新章节。

2.3.20 Learn Data Structures and Algorithms with Golang(使用 Golang 学习数据结构和算法)

本书首先介绍了 Go 数据结构和算法。 您将学习如何使用链表、数组、堆栈和队列来存储数据。继续前进,您将了解如何实现排序和搜索算法,然后是二叉搜索树。本书还将通过在算法设计中对数据类型进行字符串化和实现散列结构来帮助您提高应用程序的性能。 最后,您将能够应用传统的数据结构来解决实际问题。读完本书,你将熟练地在 Go 中实现经典的数据结构和算法,推动你成为一个自信的 Go 程序员。

2.3.21 Wasm Cooking with Golang(使用 Golang 进行 Wasm 烹饪)

您将学习如何使用 GoLang 生成 WebAssembly 应用程序,并在浏览器中和浏览器外运行 WebAssembly。

这本电子书包含 23 个完整的配方以及重现这些配方所需的代码示例:

  • 浏览器中的 Wasm & Go
  • Wasm & Go 与 Node.js
  • WasmEdge & Go
  • 云中的 Wasm:你知道 Atmo 吗?

3. 资源

3.1 Golang tutorial resources(Golang 教程资源)

3.2 A tour of Go(Go之旅)

3.3 Video: Learn Go Syntax in one video(视频:在一个视频中学习 Go 语法)

3.4 Tutorials: Go by Example(教程:通过示例进行)

3.5 Go Fundamentals Video Training(Go 基础视频培训)

3.6 More Books on the Go Wiki(Go Wiki 上的更多书籍)

3.7 TutorialEdge.net Course(TutorialEdge.net 课程)

3.8 Coursera Specialization: Programming with Go(Coursera 专业化:Go 编程)

3.9 Course: Understand Go's In-Depth Mechanics(课程:了解 Go 的深入机制)

3.10 Course: Mastering Go Programming(课程:掌握Go编程)

3.11 Course: Web Development with Google’s Go Programming Language(课程:使用 Google 的 Go 编程语言进行 Web 开发)

3.12 Golangbot.com Articles(Golangbot.com 文章)

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值