Go语言技术文章
-
Linux 策略路由通过 ip rule 的 RPDB 选择自定义路由表。本文以双网卡源地址分流为例,给出建表、加规则、route get 验证、回滚和持久化要点。406 收藏 -
TypeGuard 可以把复杂容器在 True 分支收窄到更具体的类型,但不会替你转换运行时数据。本文用混合列表说明谓词写法、False 分支、list 不变性、Sequence 设计和 TypeIs 的取舍。437 收藏 -
Go 的 http.Client 跨主机重定向后看不到 Authorization,通常是默认的敏感头保护。本文用 CheckRedirect、可信 Origin 和手动跟随策略,给出安全可控的处理方式。435 收藏 -
Java FFM API 用 Arena 管理 MemorySegment 背后的本地内存。本文通过区域所有权模式讲清 confined、shared、auto、global 四类 Arena 的释放时机和线程边界。385 收藏 -
PHP 8.4 的属性钩子可以把读取时计算和写入时规范化直接放进属性声明。本文用一个用户对象拆解 get-only 虚拟属性、set 钩子、backing value 与昂贵计算缓存的设计边界。311 收藏 -
testing/synctest 用 bubble 隔离 goroutine,并把 time 包切换到虚拟时钟。本文从超时测试出发,说明 Test、Wait、资源清理和外部 I/O 的边界。165 收藏 -
atomic.Pointer 能让配置指针的替换具备原子性和同步关系,但不会让发布后的配置对象字段可以随意原地修改。本文用不可变快照、单次 Load、race 检查和回滚路径说明原子指针的可见性边界。204 收藏 -
EnvHarness 用 Setup、Rule、Link 在 reset/step 接口外包裹静态环境,并保留原任务验证器。本文从开源研究原型出发,整理 AI 评测沙箱的试用、隔离、回滚与复盘设计。246 收藏 -
testing.B.Loop 解决了串行基准的计时和编译器优化陷阱,但并行基准仍要通过 RunParallel 与 PB.Next 分配工作。本文拆开两种语义,说明如何读取 ns/op、b.N、GOMAXPROCS 和 SetParallelism。122 收藏 -
从 MCP 原生列表分页与工具自定义结果两条路径出发,说明如何用稳定游标、结构化续取信息和可读预览控制长列表,避免一次工具调用挤满模型上下文。486 收藏 -
解释 Go 旧结构体中 64 位原子字段的对齐和复制边界,给出 atomic.Uint64 迁移、外部布局拆分、32 位构建与 go vet 复查方案。268 收藏 -
解释 Go 1.24 的 testing.B.Loop 如何自动划定基准计时边界,把初始化和清理排除在循环体耗时之外,并对比传统 b.N 写法的迁移注意事项。273 收藏 -
Redis 窗口计数限流最容易出错的地方不是 INCR,而是计数键的窗口边界和 TTL 续期方式。本文用 Lua 原子组合 INCR 与首次 EXPIRE,解释固定窗口、滑动窗口和边界突发的取舍。309 收藏 -
Go 并发代码里,原子计数器并不会自动保护同一结构体中的普通字段。本文从快照偶发不一致的故障现场出发,说明混用为什么仍会产生竞态,并给出全原子、互斥锁和原子快照的修复边界。360 收藏 -
对比 MySQL CTE 合并与物化的执行方式,结合聚合查询、MERGE/NO_MERGE 提示和 EXPLAIN 检查,说明选择条件与常见边界。392 收藏