跳转到主要内容

【Go语言测试】使用 Testify 改进你的 Go 测试和模拟

🚀 我的新课程 - Golang 测试圣经现已推出,涵盖了启动和运行为 Go 应用程序创建测试所需的一切!

断言是我真正觉得 Go 中的标准库缺少的东西。您绝对可以通过 if 比较之类的方法和其他任何方法获得相同的结果,但这并不是编写测试文件的最简洁方式。

这就是像stretchr/testify 这样的人来拯救这一天的地方。这个包已经迅速成为最流行的测试包之一,如果不是全球 Go 开发人员最流行的测试包的话。

它优雅的语法允许您编写非常简单且有意义的断言。

入门


为了启动和运行 testify 包,我们必须做的第一件事就是安装它。现在,如果您使用的是 Go 模块,那么这只是在您的一个 *_test.go 文件的顶部导入包之后调用 go test ... 的情况。

但是,如果您仍然停留在旧版本的 Go 上,您可以通过键入以下内容来获取此包:

go get github.com/stretchr/testify


完成此操作后,我们应该开始将其合并到我们的各种测试套件中。

【Go语言中级开发】使用 AES 进行加密和解密 - 教程

目标


在本教程结束时,您将能够……

  • 使用 AES 加密文本 - Go 中的高级加密标准
  • 然后,我们将研究将此加密消息写入文件
  • 最后,我们将看看如何使用共享密钥解密此消息

由此,您应该能够构建自己的简单加密系统,该系统可以执行各种操作,例如加密文件系统上的文件并使用只有您知道的密码来保护它们,或者为您正在工作的系统的各个部分添加简单加密上。

介绍


我们将从查看 AES 或高级加密标准开始,因为这是我们将用于加密和解密 Go 程序中的信息的标准。

然后我们将构建一个非常简单的加密程序,它将从命令行接收一个密码短语,并将其与 AES 结合使用来加密一段文本。

完成此操作后,我们将创建一个对应程序,该程序将使用我们用于加密文本的相同密码来解密这段文本。

AES - 高级加密标准


因此,AES 或高级加密标准是一种对称密钥加密算法,最初由两位比利时密码学家 Joan Daemen 和 Vincent Rijmen 开发。

【Go语言高级开发】Go 指针教程

在本教程中,我们将介绍 Go 中的指针以及如何在自己的 Go 程序中使用它们。我们将介绍最佳实践,并介绍一些最常见的指针用例。

在本教程结束时,您将对指针以及如何使用它们有一个扎实的理解。

介绍


在 Go 中,当我们调用一个函数并将一堆参数传递给该函数时,该语言会创建参数的副本,然后在所述函数中使用这些副本。例如:

main.go

package main

import "fmt"

func myTestFunc(a int) {
    a += 3
    fmt.Println(a)
}

func main() {
    a := 2
    myTestFunc(a)
    fmt.Println(a) // prints out 2
}

在上面的代码中,myTestFunc 接收一个整数变量,并对其进行复制,以便在函数体的上下文中使用。我们对 myTestFunc 中的 a 所做的任何更改都只会保留在 myTestFunc 函数的主体中。

现在,假设我们想调用 myTestFunc 并更新原来的 a 变量并将 3 添加到它?

【Go语言开发】Go Tickers 教程

在本教程中,我们将研究 Go 中的代码以及如何在自己的 Go 应用程序中有效地使用代码。

当您需要在给定的时间间隔内重复执行某项操作时,Tickers 非常有用,我们可以将 Tickers 与 goroutines 结合使用,以便在我们的应用程序后台运行这些任务。

行情(Tickers )与计时器


在我们深入研究之前,了解代码和计时器之间的区别很有用。

  • Tickers - 这些非常适合重复任务
  • 计时器(Timers ) - 这些用于一次性任务

一个简单的例子


让我们从一个非常简单的开始,我们每隔 5 秒重复运行一个简单的 fmt.Println 语句。

main.go

【Go语言高级开发】Golang Goroutines 的并发性

现在,Go 是一种令人难以置信的高性能语言,它具有许多强大的功能,可让您构建令人难以置信的快速应用程序。通过为我们提供这些 goroutine 和通道,它重新定义了构建并发程序的意义。

使用 goroutine 是一种非常快速的方法,可以将顺序程序转换为并发程序,而无需担心创建线程或线程池之类的事情。但是,与所有并发编程一样,这会带来一些危险,在你跑来跑去在所有函数调用前面加上 go 关键字之前必须考虑这些危险。

在本教程中,我们将研究如何在基于 Go 的程序中使用 goroutine,并随后提高程序执行的性能。

目标


在本教程结束时,您应该:

  • 对 goroutine 是什么以及如何使用它们来提高应用程序的性能有深入的了解
  • 知道如何创建和使用匿名 goroutine。
  • 了解使您的应用程序并发的一些危险。


视频教程


如果您愿意,本教程还提供视频格式。如果您想支持我的工作,请考虑喜欢并订阅我的 YouTube 频道。

https://youtu.be/ARHXmR0_MGY

【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语言开发】如何在 CentOS 7 上安装 Go 1.7

介绍


Go,通常被称为golang,是谷歌开发的一种开源编程语言。它采用极简主义的开发方法,可以轻松构建简单、可靠和高效的软件。本教程将指导您下载和安装 Go 1.7,以及编译和执行基本的“Hello, World!”。程序,在 CentOS 7 服务器上。

先决条件


在学习本教程之前,请确保您有一个具有 sudo 权限的常规非 root 用户。您可以从我们的指南 How To Create a Sudo User on CentOS 中了解有关如何设置具有这些权限的用户的更多信息。

第 1 步 – 下载 Go


截至 2016 年 9 月,CentOS 默认存储库中的 golang 软件包不是最新的。因此,我们将直接从 Go 网站手动下载包。确保复制与 64 位架构兼容的最新版本的链接。

首先进入一个可写目录:

cd /tmp


使用 curl 命令和 Go 中的链接下载 tarball:

【Go语言开发】如何在 macOS 上安装 Go 并设置本地编程环境

介绍


Go 是一种在谷歌受挫后诞生的编程语言。开发人员不断地不得不选择一种执行效率高但编译时间长的语言,或者选择一种易于编程但在生产中运行效率低下的语言。 Go 被设计为同时提供所有这三个功能:快速编译、易于编程和生产中的高效执行。

虽然 Go 是一种通用的编程语言,可用于许多不同的编程项目,但它特别适合网络/分布式系统程序,并赢得了“云语言”的美誉。它专注于帮助现代程序员使用一组强大的工具完成更多工作,通过使格式成为语言规范的一部分来消除对格式的争论,以及通过编译为单个二进制文件来简化部署。 Go 易于学习,关键字非常少,这使其成为初学者和经验丰富的开发人员的绝佳选择。

本教程将指导您在本地 macOS 机器上安装 Go 并通过命令行设置编程工作区。

先决条件


您将需要一台具有管理访问权限且连接到 Internet 的 macOS 计算机。

【Go语言开发】如何在 Windows 10 上安装 Go 并设置本地编程环境

介绍


Go 是一种在谷歌受挫后诞生的编程语言。开发人员不断地不得不选择一种执行效率高但编译时间长的语言,或者选择一种易于编程但在生产中运行效率低下的语言。 Go 被设计为同时提供所有这三个功能:快速编译、易于编程和生产中的高效执行。

虽然 Go 是一种通用的编程语言,可用于许多不同的编程项目,但它特别适合网络/分布式系统程序,并赢得了“云语言”的美誉。它专注于帮助现代程序员使用一组强大的工具完成更多工作,通过使格式成为语言规范的一部分来消除对格式的争论,以及通过编译为单个二进制文件来简化部署。 Go 易于学习,关键字非常少,这使其成为初学者和经验丰富的开发人员的绝佳选择。

本教程将指导您在本地 Windows 10 机器上安装 Go 并通过命令行设置编程环境。

先决条件

 

【Go语言开发】如何在 Ubuntu 20.04 上安装 Go

介绍


Go,有时也被称为“Golang”,是谷歌于 2012 年发布的一种开源编程语言。谷歌的目的是创建一种可以快速学习的编程语言。

自发布以来,Go 在开发人员中非常流行,并被用于从云或服务器端应用程序到人工智能和机器人技术的各种应用程序。本教程概述了如何在 Ubuntu 20.04 服务器上下载和安装最新版本的 Go(当前版本 1.16.7),构建著名的 Hello, World!应用程序,并将您的 Go 代码转换为可执行的二进制文件以供将来使用。

先决条件


本教程需要一个 Ubuntu 20.04 系统,该系统配置有具有 sudo 权限的非 root 用户和防火墙,如使用 Ubuntu 20.04 的初始服务器设置中所述。

第 1 步 — 安装 Go


在此步骤中,您将在服务器上安装 Go。

首先,通过 ssh 连接到您的 Ubuntu 服务器:

ssh sammy@your_server_ip


接下来,导航到 Web 浏览器中的官方 Go 下载页面。从那里复制当前二进制版本的 tarball 的 URL。