大多数团队上 API Gateway,上早了。网关解决的是规模问题——在服务数、客户端类型、团队数这三个变量同时增长之前,它带来的隐性成本远大于收益。一套 S×C×T 决策矩阵帮你判断临界点。
用一组自造 Go benchmark 把反直觉结论坐实:Channel 做单例慢 19–280 倍、atomic 碾压 Mutex、WaitGroup 万级退化。每个结论配标准库源码根因,末尾附场景化选型清单。
hedging 降 P99 是症状治疗不是病因治疗。基于 Go 实测:hedging 让 P99 降 51% 但服务端 mutex 等待暴增 12 倍。尾延迟治理三层框架——先治病因,再消放大,最后才用 hedging 兜底。
从"怎么检测 data race"升级到"怎么设计没有 data race 的代码"——数据所有权心智模型,4 组自造代码 demo 验证。
B+ 树为磁盘而生,跳表为内存而生。回到 antirez 原话和 ZSET 源码,拆解'并发优势论'等常见误解,提出'介质决定结构'的认知框架。
泛型不是语法糖,而是编译期门禁——它把类型混乱从运行时拉回编译期,让编译器替你问一句:这个类型真的该进来吗?
从 PHP 到 Go 的迁移,本质不是语法切换,是复杂度归属变化——错误、副作用、状态从运行时和框架兜底里,被搬到类型、错误返回、测试和审查里。一组对照实验 + 迁移 PR 评审现场 + 五点判断框架,告诉你迁移真正完成的标志。
包管理器不只是下载工具,它要回答三个更难的问题:版本谁决定、来源谁证明、构建如何复现。安装层解决「拿到包」,快照层让依赖树可审查,协议层规定信任边界。lock diff 不是噪音,是构建输入的审计记录。
Python 的简单不是免费的——语法层少付的,会在运行时、测试、依赖管理和交付流程里重新出现。项目越大,这笔账越显性。
用 Go 1.17、1.18 和 1.26 实测 slice 扩容曲线,解释旧公式为什么会在 1024 附近断裂,以及 1.18 真正修掉了什么。