Go语言技术文章
-
用一个可复查的缓存刷新场景,说明 Java ReentrantReadWriteLock 从写锁降级到读锁的正确顺序、异常释放边界与验证方法。381 收藏 -
WebGPU 的计算结果不会自动出现在 JavaScript 里:本文用 output 与 stagingBuffer 两个 GPUBuffer,串起 copyBufferToBuffer、mapAsync、getMappedRange、unmap,并补上 GPUDevice.lost 的恢复边界。381 收藏 -
文章 · python教程 | 6天前 | 并发 · 异常处理 · Python教程 · asyncio · Python 3.11 · Python asyncio CancelledError 结构化并发 TaskGroup gather ExceptionGroup
把 asyncio.gather 迁移到 TaskGroup,关键不是替换一个 API,而是重新确认失败传播、兄弟任务取消和 CancelledError 清理边界。本文用一个并发抓取示例说明最小迁移写法、ExceptionGroup 处理方式、兼容版本和回归检查。379 收藏 -
Go 编译时出现 import cycle not allowed,通常不是某一行语法错,而是包依赖回到了起点。本文用 go list 和最小重构示例定位环路,说明如何拆出接口或共享类型,并用测试和依赖检查确认修复没有引入新问题。379 收藏 -
atomic.Uint64 适合维护并发计数,但一个已经使用过的值不能再通过复制传递。本文用请求计数器拆开 Add、Load、Store 和复制副本的边界,说明为什么会触发 go vet 警告,以及如何安全地初始化、读取和测试。379 收藏 -
文件测试最容易留下脏现场:固定目录会互相覆盖,手写清理又常常漏掉失败分支。本文用 testing.TB.TempDir 完成隔离实验,核对目录生命周期、并发测试和清理顺序。379 收藏 -
Redis Functions 会把 Lua 逻辑作为函数库保存。本文用一个订单状态校验函数说明 FUNCTION LOAD、REPLACE、FUNCTION LIST 和 FUNCTION DELETE 的切换边界,给出发布前验收与失败回滚顺序。379 收藏 -
Go 服务做配置热更新时,真正要解决的不是重新读取文件,而是让新旧版本切换可验证、失败可回滚。本文用原子替换、版本号校验和恢复指针搭出一条可落地的更新流水线。378 收藏 -
从 HTTP 请求、后台 goroutine 和数据库查询三个场景说明 context.WithCancel 返回的 cancel 为什么必须调用,给出 defer、父子上下文和取消后收尾的可验证写法。378 收藏 -
目录扫描从 os.ReadDir 改成 os.File.ReadDir(n) 后,读取阶段可以按批次控制内存,但全局排序需求不会自动消失。本文用一个目录索引任务拆开读取、排序、错误收口和验收门禁,给出可复用的 Go 实现与取舍方法。378 收藏 -
科技周边 · 人工智能 | 6天前 | 人工智能 · openai · 工程实践 · 流式输出 · Responses API · SSE 断线重连 Responses API AI流式输出 事件游标
AI 流式输出断线后不要直接重发请求。本文以 OpenAI Responses API 的 SSE 事件为例,说明如何保存 response_id、sequence_number 和已展示片段,重连后消除重复内容,并用最终状态完成一次可审计的收尾。377 收藏 -
一个 AI 应用把危险请求挡住是安全表现,把正常请求误判为风险则是业务失败。本文用一组可回放的测试样本拆分安全拒答、过度拒答、正常通过和非安全业务错误,说明如何设计标签、计算指标并在上线前复核。377 收藏 -
net/netip.Prefix.Overlaps 用来判断两个 CIDR 前缀是否包含共同 IP,但地址族、零值前缀、IPv4 映射 IPv6 和 /0 边界都会影响结果。本文用一段可运行的 Go 代码拆开这些判断。377 收藏 -
Golang · Go教程 | 1天前 | Go教程 · go fix · 代码迁移 · Go 1.27 · go fix modernizer Go 1.27 atomictypes embedlit slicesbackward unsafefuncs
Go 1.27 给 go fix 增加 atomictypes、embedlit、slicesbackward 和 unsafefuncs 四类 modernizer。本文从真实升级场景出发,说明如何按代码边界选择工具、审查改动并保留可回退的迁移证据。377 收藏 -
Go 1.27 为 compile、link、asm、cgo、cover、pack 增加响应文件支持。本文用一个小型 CI 参数契约说明 @file 的解析范围、引号与反斜杠换行规则,以及升级后的回滚验收方法。377 收藏