Java 记录模式实战:一段解析代码从 300 行缩到 60 行的过程
去年接了一个支付对账系统的活。核心任务是从五家支付网关拉回调数据,把它们统一成我们内部的流水格式入账。看起来是个体力活,…
PHP 8.4 Property Hooks 实战:一个 DTO 类干掉三百行样板代码
上个月代码评审的时候,一个同事提交了一个 UserProfileDTO,两百六十多行。里面全是 private stri…
ThinkPHP 8 可插拔架构实战:一套容器绑定搞定多渠道支付切换
接手一个老项目的时候,我在支付模块的入口文件里看到了一段 400 多行的 switch。大概长这样: switch ($…
FrankenPHP worker 模式真香之前,先过一遍这三个坑
先把结论放前面。把项目从 php-fpm 切到 FrankenPHP 的 worker 模式之后,同一个接口的 QPS …
虚拟线程迁移翻车记:一个聚合接口从 800ms 到 120ms,中间修了三个坑
先交代一下这个接口是什么。电商中台的「商品详情聚合」,前端一个请求过来,后端要同时去调库存、价格、促销、评价、推荐、物流…
别再拿 Redis List 当队列了:ThinkPHP 8 下单超时取消的 Stream 完整落地
订单超时取消这个需求,几乎是每个电商、外卖、票务项目都会碰到的。用户下单之后 15 分钟没支付,就要把订单关掉、库存还回…
