go

用户01422600298412 小时前
go
深度解读 Golang Ent ORM:构建类型安全、性能强劲的数据访问层在 Go 语言的世界中,数据访问层的构建一直是工程师关注的重点。虽然 GORM 是目前最广泛使用的 ORM,但如果你追求 强类型、安全性、代码生成和 IDE 友好性,那么你绝对不能错过今天的主角 —— Ent。
程序员爱钓鱼15 小时前
google·go·排序算法
Go语言同步原语与数据竞争:Mutex 与 RWMutex在Go语言并发程序中,当多个 goroutine 同时读写同一共享变量时,如果不加以控制,会引发数据竞争(race condition),导致程序行为不可预期。
qqxhb1 天前
java·设计模式·go·命令模式
零基础设计模式——行为型模式 - 命令模式接下来,我们学习行为型模式中的命令模式。这个模式能将“请求”封装成一个对象,从而让你能够参数化客户端对象,将请求排队或记录请求日志,以及支持可撤销的操作。
用户28988180666421 天前
后端·go
Sarama消费组初始化阻塞问题排查Gopher们在和KAFKA打交道的时候,有没有使用过Sarama这个库呢?正好,我们团队的服务用了这个库。
qqxhb1 天前
java·设计模式·go·迭代器模式
零基础设计模式——行为型模式 - 迭代器模式现在我们来学习迭代器模式。这个模式非常常见,它提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
Brian Xia1 天前
分布式·go·lsm-tree
Jaeger开源分布式追踪平台深度剖析(三)Jaeger默认存储Badger原理剖析Value Log是Badger实现键值分离(Key-Value Separation)的核心组件。它将大值存储在独立的日志文件中,LSM树只存储键和值指针,这种设计显著减少了写放大和提高了性能。
江湖十年2 天前
后端·go·命令行
一行命令统计代码行数我在网上冲浪时,在 GitHub 上发现了一个感兴趣的开源项目 OneX ,我将其下载到本地,现在我该如何知道这个项目的体量呢?一个非常直观的指标是看这个项目有多少行代码。
DemonAvenger2 天前
性能优化·架构·go
Go 中 string 与 []byte 的内存处理与转换优化Go 语言因其简洁的语法、高效的并发模型和卓越的性能,成为后端开发、微服务架构及云原生应用的热门选择。在 Go 开发中,string 和 []byte 是最常用的数据类型,广泛应用于字符串处理、JSON 序列化、网络通信等场景。然而,看似简单的类型转换(如 string 转 []byte 或反之)可能隐藏性能陷阱,导致内存浪费或垃圾回收(GC)压力。
程序员爱钓鱼2 天前
后端·google·go
Go并发模型与模式:context 上下文控制在 Go 的并发编程中,goroutine 虽然轻量高效,但也容易“失控”——一旦启动就很难精确停止。为了控制并发协程的取消、超时、信号传递和生命周期管理,Go 官方引入了 context 包。
码一行2 天前
go
Go 1.24 Weak指针:内存管理的新利器在Go语言的内存管理体系中,垃圾回收器(GC)通过追踪对象引用关系来自动回收内存。但有时我们需要一种不阻止GC回收的特殊引用,这就是Weak指针的应用场景。Go 1.24在weak包中正式引入弱指针支持,本文将深入解析其原理和最佳实践。
码一行2 天前
后端·go
为什么 Go 语言不支持泛型方法?Go 语言在 1.18 版本引入泛型后,开发者们发现一个明显的限制:这个设计决策背后蕴含着 Go 语言团队对语言特性的深刻思考。
程序员爱钓鱼2 天前
后端·go
Go语言并发模型与模式:Fan-out / Fan-in 模式在并发系统中,Fan-out / Fan-in 模式是一种经典的设计方式,用于在多个 goroutine 之间进行任务分发和结果聚合,常用于提高处理吞吐量和并发能力。
喵个咪3 天前
后端·go·api
开箱即用的GO后台管理系统 Kratos Admin - 后端权限控制后端的权限控制主要分为两种:在本文,我们不讨论数据权限的控制,主要讲API的权限控制。在GO的世界里面,我们能够使用到的解决方案有:
trouvaille3 天前
算法·go
哈希数据结构的增强哈希作为一种常用的数据结构,key-value 的读写都很有着很高的性能,时间复杂度 O(1)O(1)O(1)。但也存在着一些限制,比如:
TobyMint3 天前
go
DeepSeek Tools 初体验-golang实现表示模型可能会调用的 tool 的列表。目前,只支持 function 作为大预言模型的 tools,所以基本可以将 tools 和 function 等同。
程序员爱钓鱼4 天前
后端·go·排序算法
Go语言并发模型与模式:Worker Pool 模式在Go语言高并发程序中,若每来一个任务就新建一个 Goroutine,不加控制地并发可能会导致资源耗尽甚至系统崩溃。Worker Pool(工作池)模式可以有效地限制并发数量,实现资源的可控利用。
十字路口的火丁4 天前
go
在 Go 项目中如何使用 mockgen 提升单元测试效率?在Golang项目中使用mockgen可以显著提升单元测试效率和代码质量,主要通过模拟依赖接口来隔离外部行为,以下是具体实践指南:
DemonAvenger4 天前
性能优化·架构·go
Go GOGC环境变量调优与实战案例Go语言以其简洁的语法和高性能的并发模型,成为了构建高并发后端服务的热门选择。然而,在高负载场景下,Go的垃圾回收(GC)机制可能会成为性能瓶颈。GOGC环境变量作为控制Go垃圾回收频率的核心工具,能够帮助开发者在内存使用和性能之间找到平衡点。本文面向有1-2年Go开发经验的开发者,假设你已熟悉Go基础编程并参与过实际项目。我们将深入探讨GOGC的调优原理,结合真实案例分享如何通过调整GOGC提升系统性能、降低延迟,同时剖析踩坑经验,助你少走弯路。
DemonAvenger4 天前
性能优化·架构·go
Go sync.Pool 最佳实践:复用对象降低 GC 压力的技术文章在 Go 编程的世界中,性能往往是开发者关注的焦点,而垃圾回收器(GC)在内存管理中扮演着关键角色。尽管 Go 的 GC 经过高度优化,但在高吞吐量应用(如 Web 服务器或日志系统)中,频繁的对象分配和释放会导致显著的 GC 压力,表现为 CPU 使用率上升、延迟波动和性能瓶颈。想象一个繁忙的厨房,厨师们不断使用盘子、清洗并重复利用;如果每次都购买新盘子,厨房很快会堆满垃圾,效率大打折扣。Go 标准库中的 sync.Pool 正是解决这一问题的利器,它通过对象复用减少内存分配,缓解 GC 负担。