Go语言教程

     

使用Redis和Go实现高性能缓存

74 4K

Go 是构建高性能 Web 应用程序的优秀语言,而高性能 Web 应用程序通常需要集中式缓存。当今流行的 Go 库缺乏对内存高效流的支持。相反,他们提供了[]byte方式,如果您缓存小对象,这不是问题.

Go运行时的两个主要限制

75 2K

Go 的并发运行时在云应用程序中可以很好地扩展。大多数 Go 应用程序容器都会在 Kubernetes 集群上的某个地方发出 CPU 请求,消耗几个 vCPU 和一些 RAM,并且可以很好地进行扩展,.

深入研究Go运行时的调度程序

45 10K

Go 对并发的内置支持是其最重要的功能之一,使其成为构建高性能和可扩展系统的流行选择。在本文中,我们将探讨 Golang 中的并发概念,包括其核心原语,例如goroutine和Channels,以及它.

Go中Goroutine简单教程

85 3K

Goroutine 是 Go 编程语言中的轻量级、独立执行的并发控制线程。Goroutines 是 Go 中并发和并行编程的基本构建块。它们允许您并发执行函数,从而可以轻松地以可读且可管理的方式编写并.

递归算法与并发编程能同时实现吗?

71 2K

我一直在尝试在递归等求解器中实现并发。但是,我不相信我有正确的实施想法。有谁有关于有效实现递归并发的资源吗?网友讨论:1、对于这类问题,我认为递归就像树形结构:分支。对于数独这棵相当高的树来说,我不认.

Robinson:Go中单值线程安全缓存

99

“Robinson”包是一个轻量级且高效的 Go 库,它提供了一个线程安全的缓存实现,用于存储和检索任何类型的值。它提供了一种简单且简约的缓存方法,利用 Go 泛型的强大功能来确保强大的类型和最佳性能.

如何高效批量读取Go Channel数据

99 8K

近年来,Go语言因其高效的并发模型而受到广泛关注。Goroutines 和 Channels 是 Go 中构建并发程序的基础。通道可用于在 goroutine 之间安全地传递数据和信号。很多场景下,我.

Golang 中实现基于 JWT 的身份验证

191 16K

在这篇文章中,我们将了解基于JWT(JSON Web Token)的身份验证如何工作,以及如何使用golang-jwt/jwt库在 Go 中构建服务器应用程序来实现它。JSON Web 令牌 (JWT.

Go语言的nil引发10万美元损失

131 4K

摘要:在一个公司中,一位Go语言的忠实粉丝开始推动其他团队也使用Go,但由于一个新的订阅计划的插入错误,数据库中的某个字段为空,导致应用在后台任务中发生空指针异常并崩溃,进而导致整个服务宕机,造成了约.

Go中的t.Parallel()使用教程

197 3K

在Go编程语言(Golang)的上下文中,该t.Parallel()函数经常用于测试。在 Go 中编写测试时,该testing包提供了一种T类型,该类型具有用于管理和报告测试状态的方法。该t.Para.

Go 1.22 发行说明:2个亮点

359

Go 1.22 尚未发布。这些是正在进行的发行说明。Go 1.22 预计将于 2024 年 2 月发布。语言主要变化: Go 1.22对"for"循环进行了改变,每次迭代都创建新的变量,避免了意外共享.

cloudprober:​​​​​​​主动监控软件

175

Cloudprober 是一款监控软件,可以非常轻松地监控系统各个组件的可用性和性能。Cloudprober采用“主动”监控模型。它针对(或在)您的组件运行探测器,以验证它们是否按预期工作。例如,它可.

Go-Architect:Go架构分析工具简介

141

Go-Architect是一个用于分析Go语言项目架构的工具,可以使用此工具来分析工件的设计,以便简化与重构代码、修复问题或改进工件功能相关的决策。为什么我们应该使用架构分析工具?架构分析工具可以帮助.

Otter:基于 S3-FIFO 算法的最快 Go 内存缓存

265 4K

没有一个 Golang 缓存库是真正无争用的。所有缓存库都带有互斥锁和一些删除策略的标准映射Map。这样,这些Go缓存库就无法达到其他语言(例如Caffeine)的缓存速度。例如,来自 Dgraph .

使用HTMX和Go入门

236 8K

使用 HTMX 和 Go 构建 Web 应用程序包括使用 Go(通常称为 Golang)创建后台,并在前端集成 HTMX 以实现动态和交互功能。什么是HTMXHTMX 是一个 JavaScript 库.

在Go中使用谷歌Gemini AI模型

258 4K
Google 最近通过 API提供了最新的多模式法学硕士系列, 并提供慷慨的免费套餐。谷歌还发布了多种流行编程语言的 SDK,其中包括 Go。这篇文章简要概述了如何开始使用 Go SDK 来询问混合文.

Golang中有“final”等不变性概念吗?

107

在变量前面加上“final”的意义在于:变量不能重新分配其值/引用。这有助于提高代码的可读性和可预测性(IMO),因为它是不可变编程的构建块之一。Go 有编译时常量,但它们仅限于字面“原始”值,而不是.

GoLang中后台作业终极指南

109 15K

在这篇博文中,我们将探讨GoLang、Redis和 Gocraft的强大组合,以及它们如何将您的Web 开发项目提升到一个新的水平。 GoLang是一种流行的编程语言,以其速度、并发性和效率而闻名,通.

Go中的Context是什么?

214 1 2K

在 Go 编程语言(通常称为 Golang)中,术语 "上下文 "指的是上下文包及其定义的上下文类型。上下文包用于跨 API 边界和进程间传输截止日期、取消信号和其他请求范围值。上下文包的主要目的是管.

Quarkus(Java)与Gin(Go)性能比拼

339 1 3K

在下面的文章中,我们将探讨两种常用框架的性能评估:在 Go 上运行的 Gin 和在 Java 上运行的 Quarkus。Gin 在 Go 社区中非常受欢迎,而 Quarkus 的创建是为了让 Java.

Go中切片slice与Java中集合区别?

86 3K

Go 中的切片和 Java 中的集合都是用于存储和操作多个值的容器类型。它们之间有一些关键区别:Go中的slice:底层实现:切片是对底层数组的轻量级封装,包含了对底层数组的引用、长度和容量。切片是对.

在 Golang 应用程序中使用 Redis

130 9K

Redis 是一种开源内存数据结构存储,可用作缓存、消息代理或持久键值数据库。在本文中,我们将探讨如何将 Redis 与 Golang 应用程序集成,利用 Redis 的强大功能来实现高效的数据存储和.

Go中查找死代码的工具

118 2K

定期运行deadcode,尤其是在 重构工作,以帮助识别程序中不再需要的代码。$ go install golang.org/x/tools/cmd/deadcode@latest在Go项目下运行:$.

几句话解释Go的好处

121

我习惯使用的 Java 语言却非常粗糙,有时还很复杂,因为你必须添加大量的层和重复。而当我试着用Go HTTP 服务器制作了一些 API,几分钟后,就能让它运行。几个月后,我有机会参与了他工作的一个运.

Python中间隔模式实现

89 7K

时间间隔是指由起点和终点表示的时间间隔。例如,我们可能会得到一个时间间隔 [1,10],它的起点是 1,终点是 10。有些问题会赋予这些起点和终点整数以意义。问题:给定一个间隔集合,合并所有重叠的间隔.

切换到 Go 可以提高生产力?

179 1 3K

我最近换了一份工作,从 Java Spring Boot 微服务过渡到了单体 Go 应用程序,对我来说,工作效率的提高令人难以置信。我们最喜欢 Go 应用程序的一点是,后台不再有魔法发生,不再有注解的.

选择排序算法Java、Go、Python和Rust四种代码实现

79 4K

选择排序是一种简单高效的排序算法,其工作原理是通过迭代找到数组未排序部分中最小的元素,并将其与未排序部分开头的元素交换。这个过程不断重复,直到整个数组排序完毕。其工作原理如下:它会遍历整个项目列表。查.

Go中使用冒号的8种方式

250 2K

在 Go 中,与 Python 等其他语言相比,冒号 (:) 的使用场合有限。以下是 Go 中冒号的常见用法:1、声明和赋值:冒号用于简短变量声明和赋值。x := 42  //简短的变量声明和赋值2、.

Go中变量的作用域、上下文与生命周期

104 2K

在 Go (Golang)中,变量的作用域和上下文由变量作用域规则决定。以下是 Go 中的主要变量类型及其作用域:1.局部变量: 作用域:局部变量在函数或代码块中声明。 上下文:它们只能在声明它们的代.

离开Java/C#并不喜欢在Go中看到DDD

163 2K

我注意到,在 Gophers 的小圈子里,他们离开 Java/C# 的动机是渴望一种更简单、更直接的编程方法,以避免与 DDD 和其他强调松散耦合的范式相关的复杂性和不可预测性。他们表示,之所以转用 .