Go语言教程
Go 并发 2.2:错误处理模式
使用Go并发帮助我们解决使用 goroutine 时的错误处理问题。错误处理错误处理需要与同步编程不同的模式。为了更好地理解这个问题,让我们看一个简单的程序:package mainimport ( .
Go中使用Google Wire实现依赖注入
关注点分离、松散耦合系统和依赖倒置原则等都是软件工程中众所周知的概念,并且在创建良好的计算机程序的过程中非常重要。在本文中,我们将讨论一种完全应用这三个原则的技术,称为依赖注入。Wire是 Go 中用.
Go中用缓冲通道作为信号量限制goroutine
当我们需要管理 有多少goroutine可以同时访问资源,使用信号量是一种可靠的方法。可以使用缓冲通道创建一个信号量,其中通道的大小决定了可以同时运行多少个goroutine: 一个goroutine.
Go文件操作综合指南
Go语言的内置包使您能够在应用程序中执行各种文件操作,从写入、读取和创建文件到创建和删除目录。当执行文件操作时遇到错误时,它还会提供有用的错误消息。在 Go 中读取文件os包提供了一个ReadFile.
谷歌Rust生产力高于C++两倍?
本周在伦敦举行的Rust Nation UK会议上,谷歌负责Android平台工具库的工程总监Lars Bergstrom介绍了将Go或C++迁移到Rust的经验。Go vs Rust在Chocola.
Go中使用Redis实现消息队列教程
Redis 和 Golang这对充满活力的组合将彻底改变我们处理消息系统的方式。Redis 作为内存数据存储以其速度和多功能性而闻名,它与 Golang(一种以其简单性和高性能而闻名的语言)无缝协作,.
Rules:以YAML为输入的最小Go规则引擎
最小规则引擎,使用 yaml 作为输入,其目的是允许非程序员编辑和提供将生成特定输出的业务规则。它使用 yaml 因为有固定的语法,人们可以在线参考(不是脚本语言)。它仍然有很多冗长的内容,以方便开发.
Go 1.22中for循环语义变得不同了
Go 1.22修改了for循环的语义!具体来说,只有在循环中声明了循环变量的 for 循环的语义发生了变化。例如,在下面这段代码中,前两个循环的语义没有变化,但后两个循环的语义发生了变化(从 Go 1.
Go中使用消息队列实现微服务之间异步数据处理
在本文中,我们将深入研究微服务架构的世界,其中每个服务代表一个能够与其他服务协同工作的自治实体。但是如何在这样一个动态环境中管理数据呢?这正是异步成为我们盟友的地方。我们将探讨为什么异步数据处理对于微.
Golang中编写I/O数据读写流
GitLab 使用 Golang 抽象的 I/O 实现:每小时流式传输 TB 级的 Git 数据。本文帮助你了解如何在 Golang 应用程序中编写读写器Readers 和 Writers。每小时,G.
案例:微服务从Java/SpringBoot迁移到Golang
基于 Java 的微服务,特别是那些使用 Spring Boot 的微服务,长期以来因其强大的功能和广泛的社区支持而闻名。Spring Boot 的约定优于配置方法简化了微服务的部署和开发,提供了大量.
Go首次达Tiobe榜历史最高第八名
谷歌的 Go 语言(即 golang)在 Tiobe 语言流行度指数中达到了历史最高位置,在2024年2月 Tiobe 语言流行指数中排名第八,并且多年来一直在上升。一年前在 Tiobe 指数中攀升至.
Go 1.22中路由 URL 路由参数
处理基于 HTTP 的 API 时,通常使用 URL 路由参数(也称为路由变量)传递数据。这些参数是 URL 路由段的一部分。它们通常用于识别 API 操作的资源。在除了最简单的 Web 应用程序之外.
面向初学者和专家的两种可读性编程语言
什么是可读性代码?下面一个幽默: f(x,y) -> 清晰明了,是实用编程的标志。 f x y -> 在 shell 脚本中可以接受,但有点奇怪。 (f x y) -> 令人费解。请谨慎使用! 有两种.
Go 1.22中HTTP包更新
每当我在网上遇到讨论或被问到使用哪个包在 Go 中创建 HTTP 服务器时,我的答案都是一致的。这实际上取决于您计划构建的 HTTP 服务的复杂性,但我始终建议net/http从标准包开始。Go 语言.
Go中泛型和反射比较指南
Go 是一种以简单性为傲的静态类型语言,自诞生以来已经经历了无数的变化。经常引发 Go 开发人员讨论的两个功能是反射和最近的泛型。两者都有相似的目的:为固有的静态语言引入一定程度的活力和灵活性。但是,.
GoRules:Go的业务规则引擎
ZEN Engine 是一个跨平台、开源业务规则引擎 (BRE)。它是用 Rust 编写的,并提供NodeJS、Python和Go的本机绑定。 ZEN Engine 允许从 JSON 文件加载和执行 .
Go 1.22中新HTTP路由器
Golang 1.22于2024年2月6日发布。该版本应用了相当多的更新。我非常感兴趣的一件事是增强的路由模式。借助此功能,我们可以创建动态路由参数,而无需第三方库。让我们进一步探索。问题在 gola.
Go 1.22:Golang历史上最大的破坏向后兼容性版本
Go历史上最大的破坏向后兼容性的版本。 发布说明甚至没有提到 Go 1.22 会破坏向后兼容性这一事实。网友观点: 部分破坏,这取决于为每个引用模块设置的 go.mod 版本。这样做比较温和,但如果任.
Go中Context生命周期控制问题
在 Go 中处理Context管道时需要遵守三个主要规则: 只有入口点函数应该创建新的Context, Context仅沿着调用链传递, 并且在函数返回后不存储Context或以其他方式使用它们。 上.
Go中的装饰器模式
装饰器模式是一种软件设计模式,可让您在现有逻辑之上添加更多功能。为了解决这个问题,人们首先想到的是使用继承——这是完全有道理的。然而,继承的本质是静态的。如果您有附加功能的多种变体或更糟糕的是它们的各.
Go中使用内省反射机制实现动态配置包
在 Go 开发的动态世界中,配置管理在根据特定环境定制应用程序方面发挥着至关重要的作用。虽然传统方法通常依赖于静态配置文件,但出现了一种更通用、更强大的替代方案:反射。通过利用这种内省功能,我们可以制.
Go中使用HTMX编写ToDo案例演示
在 Web 开发领域,简单性和效率是关键。这就是 HTMX 和 Go 的结合发挥作用的地方。HTMX 允许您直接在 HTML 中访问 AJAX、CSS Transitions、WebSockets 等.
Grape:零依赖的 Go HTTP 库
Grape 是一个现代的、零依赖的 Go HTTP 库。它是标准库的一个薄包装,提供帮助函数以促进更快、更轻松的开发。仅向您的项目添加一个依赖项。Go 标准库非常棒。它快速、易用,而且拥有出色的 AP.
go-fast-cdn:用Go构建的快速且易于使用的CDN
将 SQLite 数据库与 GORM 和 Gin Web 框架结合使用。使用Vite + React和wouter构建的 UI 。如何使用Go-fast CDN 有一个非常易于使用的界面,将在应用程序.
Go中用Goroutine实现观察者模式
观察者模式是事件驱动编程中的主要内容,其中对象(称为“主题”)维护其依赖者(观察者)的列表,并通知它们任何状态更改。在 Python 等语言中,信号为此类解耦组件提供了一种通信机制。但是我们如何利用 .
从 Java 迁移到 Go 后的想法
分享看从 Java 迁移到 Go 的人的经验,特别是在后端服务器端项目方面。网友讨论:我之前在做后端 Go 工作,现在在做后端 Java 工作。构建项目很容易(Go 更容易),易于使用依赖项,并且易于.
divisor:快速且易于配置的负载均衡器
用Go语言提供快速且易于配置的负载均衡器。目前它包括round-robin、weighted round-robin、least-connection、ip-hash和random算法该项目使用fas.
使用Redis和Go实现高性能缓存
Go 是构建高性能 Web 应用程序的优秀语言,而高性能 Web 应用程序通常需要集中式缓存。当今流行的 Go 库缺乏对内存高效流的支持。相反,他们提供了[]byte方式,如果您缓存小对象,这不是问题.
Go运行时的两个主要限制
Go 的并发运行时在云应用程序中可以很好地扩展。大多数 Go 应用程序容器都会在 Kubernetes 集群上的某个地方发出 CPU 请求,消耗几个 vCPU 和一些 RAM,并且可以很好地进行扩展,.