首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
每天一个golang小技巧
ShanekAI
创建于2025-02-22
订阅专栏
用于深入学习golang某个技术的原理
等 1 人订阅
共28篇文章
创建于2025-02-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Go 语言实现布隆过滤器:解决无效查询导致的缓存穿透问题
在缓存设计中,我们常常遇到一个令人头疼的问题:大量的“无效查询”让数据库压力倍增。比如,当用户请求一个不存在的数据时,我们通常会去数据库查询,而数据库返回“未找到”。如果这样的请求很多,数据库就会忙于
新版 sync.Map 的变化
在 Go 1.24 里,sync.Map 的内部实现不再是“只读快照 + 脏表”那套组合拳,而是切到了一个并发哈希前缀树(HashTrieMap)上,这套树形结构最先在 unique 包里测试,后来直
如何用go语言实现类似AOP的功能
在 Java 开发中,AOP(面向切面编程)是一种非常流行的技术。它让日志记录、权限校验、性能监控等横切关注点与核心业务逻辑解耦,使得代码结构更加清晰、职责更明确。接下来我们借助 Gin 框架的中间件
Go 语言 maps 和 slices 工具库详解:简化集合操作的新方式
在 Go 语言开发中,map 和 slice 是最常用的数据结构之一,分别用于 键值存储 和 动态数组管理。然而,在 Go 1.21 之前,开发者经常需要手写大量逻辑来处理 map 和 slice,包
使用 go 语言实现一个 LRU 缓存算法
LRU(Least Recently Used,最近最少使用)缓存是一种常见的缓存策略,经典的实现方式是结合哈希表和双向链表:哈希表用于快速查找缓存项,双向链表用于维护缓存项的访问顺序。那我们要如何用
浅谈池化思想:以 database/sql 连接池为例
在平常开发中,我们通常会遇到或者说听到,什么什么资源耗尽导致服务挂了,重复的创建对象导致瞬时内存急升,频繁的创建数据库连接导致的性能问题等等。可以看到这种问题的共性就是重复的创建资源,没有有效的利用资
Go-excelize库实现 excel web 端导出的最佳实践
通常在后端开发中遇到Excel文件导出是一件常见的需求,在数据量小的情况下,这个功能的开发是很简单的,直接读取数据到内存中一次性写入excel中导出即可,但是通常导出的数据量会比较大,可能会有几十万生
Go语言中 Mutex 的实现原理
在并发编程中,Mutex(互斥锁) 是一种基础的同步机制,用来保护共享资源不被多个 Goroutine 同时访问。Go 标准库中的 sync.Mutex 提供了一种简单而高效的互斥锁实现,广泛应用于多
如何使用 Benchmark 编写高效的性能测试
在日常的软件开发中,性能测试是一项重要的任务,用来评估代码的执行效率以及找到潜在的优化点。在 Go 语言中,性能测试通过 Benchmark 来实现,它是一种专门设计的工具,用于测试代码的性能表现。解
GO 扩展库: semaphore 实现原理与使用
Go的semaphore包提供了一个加权信号量的实现,用于控制对资源的并发访问,确保总权重不超过预设值。以下从源码出发解析其实现原理和并发控制机制: 1. 核心结构 semaphore中主要定义了如下
GO 扩展库:errgroup 实现原理与使用
在平时开发中,如果我们没有使用到errgroup库,那么通常都是自己手动管理sync.WaitGroup 以等待goroutine 结束;要是需要获取协程的错误,那么就要使用 chan error 来
深入解析Go语言container/list:双向链表的实现与应用
深入解析Go语言container/list:双向链表的实现与应用 一、list 概述 1.1 核心定位 container/list是Go标准库提供的双向链表实现,适用于需要高效插入/删除的场景。与
Go 语言中的Pipeline(管道)设计模式:实现数据流与并发控制
Go 语言中的Pipeline(管道)设计模式:实现数据流与并发控制 管道(Pipeline)设计模式是一种常用于数据流处理的设计模式,它允许数据在不同的处理单元之间流动,形成一个数据处理流水线。Go
Go 语言中的 Option 模式:简化配置和参数传递
Go 语言中的 Option 模式:简化配置和参数传递 在 Go 语言中,Option 模式(又称为配置模式、构造函数模式)是一种常用的设计模式,主要用于处理函数参数,尤其是函数有很多可选参数时。通过
分享VSCode上好用的插件:提升Gopher开发效率的利器
分享VSCode上好用的插件:提升Gopher开发效率的利器 作为GO后端开发者,合理配置VSCode插件可以显著提升编码效率与代码质量。接下来,我将分享下我在平时工作开发中使用到的相关插件。 零、G
Go 语言中的 struct 类型详解
Go 语言中的 struct 类型详解 在 Go 语言中,struct 是一种复合数据类型,用于将多个不同类型的数据组合成一个单一的数据单元。通过使用 struct,可以定义复杂的数据结构,便于组织和
Go 语言中的 make 与 new 使用区别与技巧
Go 语言中的 make 与 new 使用区别与技巧 Go 语言的内存分配有两种常用方式:make 和 new。虽然它们都用于分配内存,但它们的作用和使用场景有所不同。理解这两者的区别对于编写高效和可
Golang 错误处理的最佳实践
Golang 错误处理的最佳实践 在 Golang 中,错误处理是一个重要的话题。Go 语言采用了显式的错误处理机制,而不是像其他语言那样使用异常。下面给大家接受几种 Golang 项目中常用的错误处
Go的net/http包是如何建立tcp连接的
上篇关于echo是如何接受restful请求的文章中留下了几个新的问题,这篇我们就来看看, net/http 包是如何在 TCP 协议基础上建立连接的。 一. 前言 在开始之前,先简单说下两个概念,
浅谈 Go 的 Web 框架 Echo 是如何处理 RESTful 调用的
一. 前言 虽然有很多人是比较了解计算机网络,以及一些web框架是如何做TCP协议解析的,但是对于我个人来说,这方面的知识还是有所欠缺的,正好今天别人问我postman上的请求是如何进入你本地跑的服务
下一页