首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
每天一个golang小技巧
ShanekAI
创建于2025-02-22
订阅专栏
用于深入学习golang某个技术的原理
等 13 人订阅
共34篇文章
创建于2025-02-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Golang time 库深度解析:从入门到精通
在任何编程语言中,处理时间都是一个常见但又充满挑战的任务。时区、夏令时、精度、格式化等问题都可能成为 bug 的温床。Go 语言通过其标准库中的 time 包,提供了一套设计精良、功能强大且类型安全的
使用 Makefile 和 Docker 简化你的 Go 服务部署流程
前言 在现代云原生应用开发中,Go 语言因其高性能、简洁的语法和静态编译的特性而备受青睐。而 Docker 则提供了无与伦比的环境一致性和部署便利性。当我们将这两者结合时,如何高效地管理构建镜像、运行
拒绝文档陷阱!用调试器啃下 Google ToolBox 数据库工具箱源码
0. 前言 阅读源码是提升自己和快速获取某个知识的很不错的方式,如何高效的阅读源码每个程序员可能都有自己不同的见解,这里我就简单介绍下我是如何阅读源码的: 先读readme,一般来说readme中会写
VSCODE调试go项目小技巧
vscode 编辑器的插件功能让它可以运行市面上绝大多数的开发语言,当然也包括 golang。那么作为一名 gopher 如何利用好 vscode 上的一些功能来更好的开发呢?首先来分析下 go 项目
Go 泛型终极指南:告别 interface{},写出更安全、更强大的代码!
--- theme: smartblue --- ### 1. 引言:泛型解决了什么问题? 在 Go 1.18 版本之前,Go 语言在处理不同类型但逻辑相同的代码时,主要有两种方式: #### 1.
Go 项目依赖管理:玩转 go mod 的那些命令
作为一个 Go 开发者,你一定知道 go mod 是我们管理项目依赖的利器。它解决了早期 Go 语言依赖管理混乱的问题,让我们的项目构建和部署更加稳定可靠。但是,go mod 的功能远不止声明依赖那么
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 模式(又称为配置模式、构造函数模式)是一种常用的设计模式,主要用于处理函数参数,尤其是函数有很多可选参数时。通过
下一页