技术栈
golang
北冥you鱼
1 小时前
开发语言
·
后端
·
golang
Go语言四则运算实战:从基础类型到big包的深度解析
在Go语言开发中,四则运算是最基础也是最常用的操作之一。然而,Go语言在数值运算方面有着独特的设计哲学:基本类型支持直接运算符操作,而大数运算则需要通过big包的方法调用。这种设计既保证了简单场景的便捷性,又为高精度计算提供了可靠支持。
Wang's Blog
10 小时前
开发语言
·
微服务
·
golang
Go-Zero 项目开发47:自研微服务框架的必要性与核心结构设计
在微服务开发领域,Go 语言生态已经涌现出大量成熟框架,如 go-zero、go-micro、kratos、tarsgo、dubbo-go 等。这些框架各有侧重,有的绑定特定公司基础设施,有的追求极简与高性能。即便如此,仍有许多团队选择自研微服务框架。这并非重复造轮子,而是基于对技术深度、业务定制和长期演进的综合考量。本文将结合实际项目经验,从需求出发,探讨自研框架的价值,并以 go-zero@latest 的设计哲学为参考,设计一款微服务框架的核心目录结构,并给出可运行的代码骨架。
名字还没想好☜
16 小时前
开发语言
·
后端
·
golang
·
go
Go 用 bufio.Scanner 读大文件踩坑:默认 64KB 行上限、Buffer 扩容与按 Token 切分
用 Go 逐行读文件,几乎所有人第一反应都是 bufio.Scanner,写法也确实优雅:小文件跑得好好的,直到某天你的程序读一个日志文件突然「读一半就停了」,还不报 panic。你以为文件读完了,其实是撞上了 bufio.Scanner 一个藏得很深的默认限制:单行超过 64KB 它就悄悄停下,而且默认吞掉错误。这篇我们把这个坑和相关的用法讲透。
techdashen
17 小时前
开发语言
·
后端
·
golang
Go设计取舍之六: sync.Mutex正常模式与饥饿模式
2023 年 6 月 3 日,在 golang-nuts 询问了 sync.Mutex 源码注释中的 waiter 和饥饿模式。Ian Lance Taylor 参与回复,共有 6 封邮件。完整讨论:Can we further optimize the scheduling order of goroutines in sync.Mutex?。
立心者0
1 天前
开发语言
·
笔记
·
golang
Golang基础笔记十五之sync
在并发编程的世界里,Golang 的 goroutine 像一群不知疲倦的小精灵,各自独立地执行任务。但当多个 goroutine 同时访问共享资源时,就会引发数据竞争(data race),就像一群人同时抢一个麦克风,场面就会失控。今天我们要聊的 sync 包,就是 Golang 官方提供的“秩序维护者”,它帮我们优雅地解决并发协作问题。### 为什么需要 sync?先看一个反面教材。假设我们要统计一段文本中单词的总数,用多个 goroutine 分别统计不同段落,最后汇总。如果直接用一个共享变量累加,
北冥you鱼
1 天前
java
·
python
·
golang
Go语言数组越界处理机制详解:从编译时检查到运行时panic
在Go语言中,数组是一种固定长度、连续内存的数据结构,其长度在声明时就已经确定,无法在运行时改变。这种设计带来了性能优势,但也引入了一个关键问题:数组越界访问。
FfHUCisI
1 天前
贪心算法
·
golang
·
代理模式
Golang - 贪心算法 — 局部最优推导全局最优
贪心算法的名字听起来像是"贪得无厌",但它其实是一种相当务实的策略:在每一步都选择当前看起来最好的选项,然后寄希望于这一系列局部最优选择最终拼出一个全局最优解。
xcLeigh
2 天前
java
·
开发语言
·
golang
Go入门:变量声明的五种方式详解
大家好,我是你们的Go语言向导。前面十篇文章我们完成了Go语言的入门准备——环境搭建、设计哲学、工具链、注释规范、命名规则、包系统、文件结构和main包。从今天开始,我们正式进入Go语法的学习。第一个要掌握的知识点就是变量声明。
Achou.Wang
3 天前
开发语言
·
python
·
golang
深入理解go语言-第6章 接口与面向组合设计
“If it walks like a duck and quacks like a duck, it’s a duck.” —— Duck Typing
techdashen
2 天前
开发语言
·
后端
·
golang
Go设计取舍之三: 0.3ns每次的错误Benchmark
2023 年 11 月 27 日, golang-nuts 分享了一组 Go 1.21 与 Go 1.22 的 benchmark,想确认 string 和 []byte 转换是否获得了新的零分配优化。共有 9 封邮件。原始讨论:It seems that go 1.22 has optimized…。
techdashen
2 天前
开发语言
·
后端
·
golang
Go设计取舍之四: map不变时能否并发修改不同value
2026 年 7 月 28 日,golang-nuts 上出现了一个很典型的问题:map 已经提前填好,之后不再增删 key,多条 goroutine 分别更新不同 key 对应的 value,是否安全?线程共有 10 封邮件,Ian Lance Taylor 参与回复。原始讨论:Concurrent Access to Map Values?。
名字还没想好☜
2 天前
golang
·
单元测试
·
log4j
·
go
·
testing
Go 表驱动测试实战:用 t.Run 子测试组织可维护的单元测试
你给一个函数写单测,第一版是复制粘贴:测输入 A 断言一段,测输入 B 再抄一遍断言,测边界值又抄一遍。三个用例还好,等长到十几个,某天函数签名改了,你得挨个改十几段几乎一样的代码。更糟的是,一个断言 t.Fatal 挂掉,后面的用例根本没跑,你不知道到底错了几个。Go 社区的标准答案是表驱动测试:把用例做成一张表,循环跑,配合 t.Run 拆成独立子测试。这篇手把手带你从「复制粘贴」重构到「一张表搞定」。
golang学习记
2 天前
golang
·
claude code
Claude Code写哪种变成语言最快?
最近,一个名为 mame/ai-coding-lang-bench 的基准测试在开发者社区引起了不小的讨论。这个测试的设定很有意思:让 Claude Code 用 13 种不同的编程语言,分别实现一个简化版的 Git 系统。每种语言测试 20 次,总共跑了 600 次。结果揭示了一些反直觉的规律,也让我重新思考了 Go 在 AI 辅助开发时代的定位。
ShuiShenHuoLe
2 天前
开发语言
·
golang
·
html
Go html/template 使用入门
用 html/template 把 HTML 文件 + Go 数据 → 渲染成完整 HTML,并自动防 XSS。
Achou.Wang
2 天前
大数据
·
算法
·
golang
深入理解go语言-第5章 并发编程——Go的灵魂
“Don’t communicate by sharing memory; share memory by communicating.” —— Go proverb
呐抹倾
3 天前
笔记
·
学习
·
golang
go学习笔记:panic是什么含义
各位小伙伴,今天我们来聊一个在Go语言里既让人“闻风丧胆”又不得不掌握的概念——panic。很多初学者一看到程序崩溃,就以为是panic的锅,但其实panic只是“报告问题”的机制,真正的“锅”往往是我们自己代码的逻辑漏洞。今天我就用大白话,结合代码示例,带大家彻底搞懂panic的含义、触发时机以及如何优雅地处理它。### 什么是panic?——程序眼中的“紧急刹车”想象一下你正在开车,突然前面出现一个横穿马路的行人,你本能地猛踩刹车,同时按喇叭提醒周围。panic就像这个“急刹车”——当程序遇到无法继续
不在逃避q
3 天前
redis
·
笔记
·
golang
Golang笔记之Redis
大家好,我是你们的老朋友,一个喜欢折腾技术的博主。今天咱们来聊聊Go语言和Redis这对黄金搭档。Redis作为一款高性能的内存数据库,在缓存、队列、分布式锁等场景下几乎是标配。而Go语言凭借其高并发、简洁的语法,天然适合与Redis配合使用。这篇文章我会从零开始,带你用Golang操作Redis,包括安装、连接、基本操作和几个实用场景,全程代码示例,保证你能跟着跑起来。### 为什么是Go + Redis?先废话两句。Redis是单线程模型,但它速度极快,因为基于内存操作。而Go的goroutine可以
名字还没想好☜
3 天前
java
·
数据库
·
golang
·
go
·
goroutine
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
你写了一个经典的「干活 or 超时」循环,跑一段时间发现内存慢慢涨、GC 越来越频繁,pprof 一看全是 time.Timer 对象堆着不释放。代码看着人畜无害:
ttwuai
3 天前
前端
·
golang
GoFrame 后台日志清空失败:无 WHERE 删除为什么被拦住
GoFrame 后台里“清空全部日志”不要直接写成无条件 Delete。ORM 拦住无 WHERE 删除,通常是在防误删,不是框架莫名其妙。正确做法是把“清空全部”当成一个显式后台动作:接口先挂权限码,后端使用专门的清理逻辑或明确安全条件,执行前后读取日志数量和分页 total,再把操作者、时间、影响行数写进审计日志。
进击的程序猿~
3 天前
开发语言
·
面试
·
golang
Go 并发底层原理面试学习指南
Goroutine是Go语言中的轻量级线程,由Go运行时调度。核心特点:Channel是Goroutine之间通信的管道,基于CSP模型。