Go语言教程

     

Go中用缓冲通道作为信号量限制goroutine

13 6K

当我们需要管理 有多少goroutine可以同时访问资源,使用信号量是一种可靠的方法。可以使用缓冲通道创建一个信号量,其中通道的大小决定了可以同时运行多少个goroutine: 一个goroutine.

Go文件操作综合指南

18 37K

Go语言的内置包使您能够在应用程序中执行各种文件操作,从写入、读取和创建文件到创建和删除目录。当执行文件操作时遇到错误时,它还会提供有用的错误消息。在 Go 中读取文件os包提供了一个ReadFile.

谷歌Rust生产力高于C++两倍?

167 1

本周在伦敦举行的Rust Nation UK会议上,谷歌负责Android平台工具库的工程总监Lars Bergstrom介绍了将Go或C++迁移到Rust的经验。Go vs Rust在Chocola.

Go中使用Redis实现消息队列教程

64 10K

Redis 和 Golang这对充满活力的组合将彻底改变我们处理消息系统的方式。Redis 作为内存数据存储以其速度和多功能性而闻名,它与 Golang(一种以其简单性和高性能而闻名的语言)无缝协作,.

Rules:以YAML为输入的最小Go规则引擎

40

最小规则引擎,使用 yaml 作为输入,其目的是允许非程序员编辑和提供将生成特定输出的业务规则。它使用 yaml 因为有固定的语法,人们可以在线参考(不是脚本语言)。它仍然有很多冗长的内容,以方便开发.

Go 1.22中for循环语义变得不同了

59 5K

Go 1.22修改了for循环的语义!具体来说,只有在循环中声明了循环变量的 for 循环的语义发生了变化。例如,在下面这段代码中,前两个循环的语义没有变化,但后两个循环的语义发生了变化(从 Go 1.

Go中使用消息队列实现微服务之间异步数据处理

43 16K

在本文中,我们将深入研究微服务架构的世界,其中每个服务代表一个能够与其他服务协同工作的自治实体。但是如何在这样一个动态环境中管理数据呢?这正是异步成为我们盟友的地方。我们将探讨为什么异步数据处理对于微.

Golang中编写I/O数据读写流

43 14K

GitLab 使用 Golang 抽象的 I/O 实现:每小时流式传输 TB 级的 Git 数据。本文帮助你了解如何在 Golang 应用程序中编写读写器Readers 和 Writers。每小时,G.

案例:微服务从Java/SpringBoot迁移到Golang

191 1 2K

基于 Java 的微服务,特别是那些使用 Spring Boot 的微服务,长期以来因其强大的功能和广泛的社区支持而闻名。Spring Boot 的约定优于配置方法简化了微服务的部署和开发,提供了大量.

Go首次达Tiobe榜历史最高第八名

82

谷歌的 Go 语言(即 golang)在 Tiobe 语言流行度指数中达到了历史最高位置,在2024年2月 Tiobe 语言流行指数中排名第八,并且多年来一直在上升。一年前在 Tiobe 指数中攀升至.

Go 1.22中路由 URL 路由参数

42 18K

处理基于 HTTP 的 API 时,通常使用 URL 路由参数(也称为路由变量)传递数据。这些参数是 URL 路由段的一部分。它们通常用于识别 API 操作的资源。在除了最简单的 Web 应用程序之外.

面向初学者和专家的两种可读性编程语言

48

什么是可读性代码?下面一个幽默: f(x,y) -> 清晰明了,是实用编程的标志。 f x y -> 在 shell 脚本中可以接受,但有点奇怪。 (f x y) -> 令人费解。请谨慎使用! 有两种.

Go 1.22中HTTP包更新

72 5K

每当我在网上遇到讨论或被问到使用哪个包在 Go 中创建 HTTP 服务器时,我的答案都是一致的。这实际上取决于您计划构建的 HTTP 服务的复杂性,但我始终建议net/http从标准包开始。Go 语言.

Go中泛型和反射比较指南

141 14K

Go 是一种以简单性为傲的静态类型语言,自诞生以来已经经历了无数的变化。经常引发 Go 开发人员讨论的两个功能是反射和最近的泛型。两者都有相似的目的:为固有的静态语言引入一定程度的活力和灵活性。但是,.

GoRules:Go的业务规则引擎

105 6K

ZEN Engine 是一个跨平台、开源业务规则引擎 (BRE)。它是用 Rust 编写的,并提供NodeJS、Python和Go的本机绑定。 ZEN Engine 允许从 JSON 文件加载和执行 .

Go 1.22中新HTTP路由器

114 4K

Golang 1.22于2024年2月6日发布。该版本应用了相当多的更新。我非常感兴趣的一件事是增强的路由模式。借助此功能,我们可以创建动态路由参数,而无需第三方库。让我们进一步探索。问题在 gola.

Go 1.22:Golang历史上最大的破坏向后兼容性版本

653 1 2K

Go历史上最大的破坏向后兼容性的版本。 发布说明甚至没有提到 Go 1.22 会破坏向后兼容性这一事实。网友观点: 部分破坏,这取决于为每个引用模块设置的 go.mod 版本。这样做比较温和,但如果任.

Go中Context生命周期控制问题

62 5K

在 Go 中处理Context管道时需要遵守三个主要规则: 只有入口点函数应该创建新的Context, Context仅沿着调用链传递, 并且在函数返回后不存储Context或以其他方式使用它们。 上.

Go中的装饰器模式

44 6K

装饰器模式是一种软件设计模式,可让您在现有逻辑之上添加更多功能。为了解决这个问题,人们首先想到的是使用继承——这是完全有道理的。然而,继承的本质是静态的。如果您有附加功能的多种变体或更糟糕的是它们的各.

Go中使用内省反射机制实现动态配置包

52 14K

在 Go 开发的动态世界中,配置管理在根据特定环境定制应用程序方面发挥着至关重要的作用。虽然传统方法通常依赖于静态配置文件,但出现了一种更通用、更强大的替代方案:反射。通过利用这种内省功能,我们可以制.

Go中使用HTMX编写ToDo案例演示

74 8K

在 Web 开发领域,简单性和效率是关键。这就是 HTMX 和 Go 的结合发挥作用的地方。HTMX 允许您直接在 HTML 中访问 AJAX、CSS Transitions、WebSockets 等.

Grape:零依赖的 Go HTTP 库

61 3K

Grape 是一个现代的、零依赖的 Go HTTP 库。它是标准库的一个薄包装,提供帮助函数以促进更快、更轻松的开发。仅向您的项目添加一个依赖项。Go 标准库非常棒。它快速、易用,而且拥有出色的 AP.

go-fast-cdn:用Go构建的快速且易于使用的CDN

66 2K

将 SQLite 数据库与 GORM 和 Gin Web 框架结合使用。使用Vite + React和wouter构建的 UI 。如何使用Go-fast CDN 有一个非常易于使用的界面,将在应用程序.

Go中用Goroutine实现观察者模式

56 3K

观察者模式是事件驱动编程中的主要内容,其中对象(称为“主题”)维护其依赖者(观察者)的列表,并通知它们任何状态更改。在 Python 等语言中,信号为此类解耦组件提供了一种通信机制。但是我们如何利用 .

从 Java 迁移到 Go 后的想法

85 3K

分享看从 Java 迁移到 Go 的人的经验,特别是在后端服务器端项目方面。网友讨论:我之前在做后端 Go 工作,现在在做后端 Java 工作。构建项目很容易(Go 更容易),易于使用依赖项,并且易于.

divisor:快速且易于配置的负载均衡器

76

用Go语言提供快速且易于配置的负载均衡器。目前它包括round-robin、weighted round-robin、least-connection、ip-hash和random算法该项目使用fas.

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

65 4K

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

Go运行时的两个主要限制

70 2K

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

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

44 10K

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

Go中Goroutine简单教程

81 4K

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