ThinkPHP 8 订单状态机实战:把散落各处的 if 判断收进一张转移表
去年 Q3 接手的一个电商项目,订单模块的代码让我有点头大。同一个订单状态字段,在十几个地方被 update 过。下单后…
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,中间修了三个坑
先交代一下这个接口是什么。电商中台的「商品详情聚合」,前端一个请求过来,后端要同时去调库存、价格、促销、评价、推荐、物流…
