Go语言技术文章
-
Go 标准库的一次性初始化函数适合封装成可并发调用的闭包,但它缓存的是一次执行结果,初始化 panic 也会被重复传播。本文用真实源码路径拆开执行、结果可见性、失败语义与重置边界。420 收藏 -
数据库 · MySQL | 4天前 | MySQL · 执行计划 · 查询优化 · 统计信息 · 数据库性能 · explain MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICS
当 WHERE 条件落在数据分布很不均匀的列上,MySQL 估算行数可能偏离实际。本文用 orders.status 这个可复现实例,说明什么时候建立直方图、如何选择桶数量,以及怎样用 COLUMN_STATISTICS 和 EXPLAIN 验收收益。420 收藏 -
用 testing.T.Context 把测试超时信号传给后台 goroutine,并配合 Cleanup 等待资源退出,避免测试结束后仍有后台任务运行。420 收藏 -
本文用知识库问答跑偏的真实工程场景,拆解 RAG 从问题改写、向量检索、重排过滤、分数阈值到引用检查的完整流程,帮助你把“模型乱答”改成可排查、可复查、可拒答的系统。419 收藏 -
科技周边 · 业界新闻 | 2个月前 | gitHub actions · 业界新闻 · CI治理 · 供应链安全 GitHub Actions CI安全 工作流触发 pull_request_target
GitHub 在 2026 年 6 月持续增强 Actions 工作流触发和默认安全策略。本文从触发来源、事件规则、权限收缩、人工复核到落地清单,梳理团队如何治理 CI 供应链风险。419 收藏 -
客服回复提示词改了两句话,结果结构化字段合格率下降,才发现线上没有记录每条回答来自哪个版本。本文用样本对照、灰度比例、输出门禁和请求标识建立可回退的提示词发布流程。419 收藏 -
批量计算文件 SHA-256 时,直接为每个文件启动 goroutine 很容易把磁盘和句柄拖满。本文用一个可取消的小工具演示如何用 context、固定 worker 数和结果汇总,把停止、错误和部分结果处理清楚。419 收藏 -
Slack网页版直接从 slack.com 进入,桌面端和移动端从官方 Downloads 页面选择系统版本;本文说明登录切换、安装更新与权限安全检查方法。419 收藏 -
数据库 · MySQL | 2星期前 | MySQL · 复制 · 主键 · InnoDB · 数据库迁移 · 数据库迁移 MySQL 8.4 sql_generate_invisible_primary_key 生成不可见主键 my_row_id
MySQL 8.4 可以为没有显式主键的 InnoDB 表生成不可见主键。本文用迁移排查场景说明如何确认 my_row_id、区分源库与副本行为,并给出备份、建表和回滚验收清单。419 收藏 -
MySQL 8.4 的 InnoDB 死锁发生后会自动选择一个事务回滚,但应用仍要识别错误并重试。本文用订单与库存更新场景还原锁等待环路,演示如何读取 SHOW ENGINE INNODB STATUS、开启 innodb_print_all_deadlocks、判断受害事务并验收安全重试。419 收藏 -
Redis 分布式锁最容易出问题的地方,不是 SET NX EX 本身,而是任务执行时间超过租约后如何续期、谁有资格释放以及续期失败后怎样停止业务写入。本文用单实例锁的最小模型拆开租约、看门狗、随机令牌和围栏令牌的边界,再给出可验收的续期与释放检查清单。419 收藏 -
bytes.Buffer.Grow 不是越早调用越好。本文从容量、写入、Reset 和 Bytes 的真实关系出发,说明预留空间、复用缓冲区与避免长期保留大内存的边界。419 收藏 -
围绕 Go defer 在循环中的常见误用,解释为什么文件、连接、锁等资源会等到函数返回才释放,并给出函数拆分、显式关闭和错误处理的实战写法。418 收藏 -
本文回答 Go 普通 map 并发读写为什么会报错,解释常见误区,并通过互斥锁、sync.Map、race 检查和封装访问给出可落地的选择方法。418 收藏 -
Golang · Go教程 | 2个月前 | defer · 单元测试 · testing · Go教程 · t.Cleanup · defer 单元测试 Testing 子测试 Go教程 T.Cleanup 测试资源清理
Go 测试代码里的临时文件、测试库、测试服务和环境变量,最好让清理动作跟随 testing.T 生命周期。本文对比 defer 和 t.Cleanup 的适用边界,给出可落地迁移清单。418 收藏