【Go语言高级开发】Go Channels 教程
在本教程中,我们将研究如何在基于 Go 的应用程序中使用通道。
通道是连接基于 Go 的应用程序中的 goroutine 之间的管道,允许通信以及随后在变量之间传递值。
与其他编程语言相比,它们非常方便,可以帮助您在 Go 中构建令人难以置信的高性能、高并发应用程序,而无需大惊小怪。这绝不是侥幸,在设计语言时,核心开发人员决定他们希望他们的语言中的并发性成为一等公民,并使其尽可能简单地使用,不要走得太远,也不允许开发人员他们需要工作的自由。
如此轻松地构建并发系统的能力首先吸引了我对这门语言的兴趣,我不得不说,到目前为止,这绝对是一种乐趣。
注意 - 如果您想了解有关 goroutine 的更多信息,我建议您查看我的其他关于 goroutines 的教程。
目标
在本教程结束时,您将:
- 对渠道背后的理论有深刻的理解
- 能够创建使用通道的简单并发 Go 应用程序
先决条件
为了完成本教程,您需要满足以下先决条件:
【Go语言高级开发】Go WaitGroup 教程
如果您刚刚开始学习 Go 以及如何实现高并发、高性能应用程序,那么了解 WaitGroups 至关重要。
在本教程中,我们将介绍以下内容:
- WaitGroups 是什么以及我们应该在什么时候使用它们
- 使用 WaitGroups 的简单示例
- WaitGroups 的真实示例
到此结束时,您应该对如何在您自己的并发 Go 应用程序中使用 WaitGroups 有一个坚实的掌握。
注意 - 本教程的完整代码可以在这里找到:TutorialEdge/go-waitgroup-tutorial
视频教程
https://youtu.be/0BPSR-W4GSY
了解等待组
让我们直接深入了解什么是 WaitGroup 以及它为我们解决了什么问题。
当您开始在 Go 中编写利用 goroutines 的应用程序时,您会遇到需要阻止代码库某些部分执行的场景,直到这些 goroutines 成功执行。
以这段代码为例:
【Go语言数据库开发】Golang ORM 教程
在本教程中,我们将了解如何使用 Go-ORM 或 GORM 以简单的方式与 sqlite3 数据库进行交互。
ORM 或对象关系管理器几乎充当我们开发人员和我们底层数据库技术之间的中介。 它们让我们基本上可以像往常一样使用对象,然后保存这些对象,而无需编写复杂的 SQL 语句。
在您不希望使用 SQL 但需要数据库的情况下,它们有效地降低了我们代码库的复杂性。
视频教程
https://youtu.be/VAGodyl84OY
安装
为了安装 jinzhu/gorm,您必须执行以下 go get 命令:
go get -u github.com/jinzhu/gorm
完成此操作后,您应该能够将 jinzhu/gorm 导入到任何基于 Go 的项目中。
一个简单的例子
例如,假设您想编写一个 go REST API,当某个 API 端点被命中时,它将新用户及其电子邮件保存到数据库中。
我们可以像这样在 go 结构中描述我们的用户:
【Go语言Web开发】使用 Go 和 Mailgun 发送电子邮件
在本教程中,我将演示如何使用 Go(Lang) 和 mailgun api 发送邮件。 值得庆幸的是,mailgun 的 API 非常棒,一旦您正确设置了所有内容,发送邮件就非常容易。
【Go语言高级开发】Go 装饰器函数模式教程
装饰器在 Python 和 TypeScript 等其他编程语言中肯定更为突出,但这并不是说你不能在 Go 中使用它们。事实上,对于某些问题,使用装饰器是完美的解决方案,我们希望在本教程中能找到答案。
了解装饰器模式
装饰器本质上允许您包装现有功能并在顶部附加或添加您自己的自定义功能。
在 Go 中,函数被视为第一类对象,这本质上意味着您可以像传递变量一样传递它们。让我们用一个非常简单的例子来看看这个:
【Go语言Web开发】使用 JWT 保护您的 Go REST API
注意 - 本教程的完整源代码可以在这里找到:TutorialEdge/go-jwt-tutorial
JWT,或者更正式地称为 JSON Web 令牌,是一种紧凑的、URL 安全的方式,用于表示要在两方之间传输的声明。这本质上是一种令人困惑的说法,即 JWT 允许您以无状态但安全的方式将信息从客户端传输到服务器。
先决条件
在您阅读本文之前,您将需要以下内容:
- 您需要在开发机器上安装 Go 版本 1.11+。
介绍
JWT 标准使用 HMAC 算法的密钥或使用 RSA 或 ECDSA 的公钥/私钥对。
注意 - 如果您对 JWT 的正式定义感兴趣,那么我建议您查看 RFC:RFC-7519
这些在单页应用程序 (SPA) 中被大量用作安全通信的手段,因为它们允许我们做两件关键的事情:
【Go语言Web开发】使用 Golang 创建 RESTful API
如果您正在编写任何形式的 Web 应用程序,那么您很可能与 1 个或多个 REST API 交互,以填充应用程序的动态部分并执行更新或删除数据库中的数据等任务。
在本教程中,您将构建一个成熟的 REST API,它公开 GET、POST、DELETE 和 PUT 端点,随后将允许您执行全部范围的 CRUD 操作。
为了保持简单并专注于基本概念,我们不会与任何后端数据库技术交互来存储我们将要玩的文章。但是,我们将编写此 REST API,以便轻松更新我们将定义的函数,以便它们对数据库进行后续调用以执行任何必要的 CRUD 操作。
如果您想了解有关如何使用 Go 与数据库交互的更多信息,可以查看以下文章:
源代码 - 可以在此处找到本文的完整源代码:TutorialEdge/create-rest-api-in-go-tutorial
先决条件
您需要在开发机器上安装 Go 版本 1.11+。
【Go语言Web开发】使用 Gorilla Mux 和 PostgreSQL 在 Go 中构建和测试 REST API
介绍
本教程将说明如何在 Go 中构建由 PostgreSQL 支持的 REST API,使用 Gorilla Mux 进行路由。本教程将采用测试驱动开发,最后将解释如何在开发过程中对数据库进行持续测试。
目标
在本教程结束时,您将:
- 熟悉 Gorilla Mux,并且
- 了解如何使用持续集成 (CI) 针对数据库测试您的应用程序。
先决条件
本教程假设:
- 基本熟悉 Go 和 PostgreSQL,以及
- 你有工作的 Go 和 PostgreSQL 安装。您可以使用 Docker 轻松运行测试数据库。
您将在此存储库中找到演示的完整代码。
【Go语言Web开发】如何使用 Golang 和 PostgreSQL 构建 REST-API
Golang 是一种开源编程语言,可以轻松构建简单、可靠和高效的应用程序。它是一种新兴语言,开发了 Docker 和 Kubernetes 等技术。 Go 是一种编译语言。因此,当人们编写程序时,它会被编译并生成与该程序等效的机器代码。
本教程将讨论 Golang 并帮助我们使用 Golang 和 PostgreSQL 数据库创建一个 REST API 应用程序。
Golang 的历史
Go 是由谷歌开发的。 Go 通常被称为 Golang。由于其域名为golang.org,因此被称为Golang,原因是go.org无法使用。因此,Go 语言被缩写为 Golang,因此域名为 golang.org。
Golang 开发项目始于 2007 年,主要目标是利用多核处理器开发大型分布式系统和高度可扩展的网络服务器。
Golang 项目于 2009 年开源,其第一个初始版本 1.0 于 2012 年发布。Google Jetbrain 团队将 Go 称为最有前途的编程语言。
【Go语言Web开发 】使用 Fiber 在 Go 中构建基本的 REST API
Fiber 是一个新的基于 Go 的 Web 框架,它已经爆发并引起了编程社区的极大兴趣。 该框架的存储库一直位于 Go 编程语言的 GitHub 趋势页面上,因此,我想我会打开旧的 VS Code 并尝试构建一个简单的 REST API。
因此,在本教程中,我们将介绍如何使用这个新的 Fiber 框架开始在 Go 中构建自己的 REST API 系统!
在本教程结束时,我们将介绍:
- 项目设置
- 为图书管理系统构建 Simle CRUD REST API
- 使用附加包将项目分解为更可扩展的格式。
让我们潜入!
视频教程
本教程还提供视频格式:
https://youtu.be/Iq2qT0fRhAA