Web Analytics

Tony Bai

一个程序员的心路历程

JetBrains 官方深度指南:如何在 Go 中优雅地处理错误?从底层原理到现代最佳实践

在主流后端开发语言中,Go 坚持“错误即普通值(Errors are values)”的设计哲学,为系统控制流带来了无与伦比的透明度与确定性。本文译自 JetBrains 官方博客的最新深度技术指南,全面梳理了 Go 错误处理的核心体系:从底层的 error 接口与 defer/panic/recover 边界,到基于 %w 的错误包装与 errors.Unwrap 链路追踪;深入对比了 errors.Is、errors.As 以及 Go 1.26 泛型新特性 errors.AsType 的类型安全优势;并详细解析了 Go 1.20 引入的 errors.Join 多错误合并与 context.WithCancelCause 上下文根因传递。文章还针对网络与 I/O 错误给出了生产级应对策略,并系统总结了避免忽略错误、杜绝随意 panic 等七大常见陷阱。

September 5, 2026 · 25 min · Tony Bai

Rust官方宣布启动函数重载实验,一个特性打通 C++ 互操作最后一公里

在谷歌资助与 Rust 基金会支持下,Rust 官方团队宣布在 Nightly 编译器中启动函数重载语言实验。该实验通过引入 `#[rustc_splat]` 属性,允许开发者摆脱以往必须嵌套元组的别扭写法,以原生多参数形式自然调用 C++ 重载函数(如 std::hypot)。本文深度拆解 splat 特性的工作原理、调用链路、当前局限与未来 `#[overload]` 语法构想,全面解析 Rust 如何打破与 C++ 互操作的最后一公里瓶颈。

September 4, 2026 · 13 min · Tony Bai

起底Uber AI软件工厂:智能体用量暴涨9.4倍,账单却纹丝不动

本文基于 Uber 工程博客最新披露的内部实践,系统梳理了 Uber 如何在 AI 编程智能体(Coding Agent)用量暴涨的同时,把总成本控制在几乎不变的水平。文章将从“软件工厂”的四层架构讲起,拆解 Uber 用来分析成本的六变量方程式,并逐一介绍其在模型选型、Token 消耗、请求效率、组织可见性四个维度上的具体优化杠杆——包括基准驱动的模型路由、Prompt Cache 的 TTL 策略、MCP 工具的 CLI 化改造、Code-Mode 批处理、AI Context Graph 上下文图谱,以及面向工程师的实时成本反馈机制。文末结合 Uber 的经验,给出对国内团队构建自己的 AI 软件工程体系的几点启示。

September 3, 2026 · 16 min · Tony Bai

《Fluent Python》作者深度解读:Go 集合类型家族要“大改版”了

Go 语言诞生十六年来,标准库中始终缺失原生集合类型(Set)。在 GopherUK 2026 大会上,《Fluent Python》作者 Luciano Ramalho 深度解读了 Go Collections 工作组提出的重磅提案 #80590。该提案不仅带来了基于 map[E]struct{} 的官方标准 Set(container/set),还通过 maphash.Hasher 接口打破了不可比较类型的哈希限制,并引入了基于 F-bounded 多态的抽象集合架构。文章系统梳理了从传统双重循环到 O(M+N) 集合代数的性能跃迁,以及这套高层抽象语言对 AI 编程时代的深远意义。

September 2, 2026 · 12 min · Tony Bai

一只机器鸭子,用 Rust 写了个“大脑”:拆解 Hugging Face 爆款机器人 Microduck

Hugging Face 旗下 Pollen Robotics 开源的机器人 Microduck 近期爆火,官网预订已经排到数月之后。这只 25 厘米高的机器鸭子,控制系统完全用 Rust 手写、不依赖任何框架,七个守护进程通过 Unix Socket 上的 JSON-RPC 协作,具备热更新、自动回滚等工业级可靠性设计;而它的走路、起身、踢球等行为,则是在 MuJoCo 仿真环境中用 PPO 强化学习训练、再通过 sim2real 迁移到真实硬件的。本文从架构、通信协议、更新机制到强化学习训练流程,完整拆解这只“开源鸭子”的技术内幕。

September 1, 2026 · 13 min · Tony Bai