ThinkPHP8模型事件深入实战:自动字段填充、操作日志与缓存联动
项目里有一张用户表,每次新增用户的时候,都要手动写状态、来源渠道、最后登录时间这些字段。一开始还能忍,后来越加越多,搞得…
Java 21 虚拟线程:我把线程池换成它之后,服务抗压能力提升了三倍
上周我负责的订单服务被运营人员一通吐槽,说大促期间接口经常超时。我看了眼监控,发现线程池被打满了,请求全在排队。翻代码发…
ThinkPHP 8 中间件实战:从零搭建 API 签名验证与请求日志
做接口开发的时候,签名验证和请求日志几乎是两个绕不开的必备环节。我以前总是把这些逻辑写在控制器公共类里面,搞得到后面每一…
Python 3.12 新语法 type 语句:定义类型别名的优雅姿势
今天早上升级项目到 Python 3.12,突然发现代码里写类型别名的方式可以更清爽了。以前我们定义一个类型别名得用赋值…
ThinkPHP 8 容器机制完全拆解:从源码读懂依赖注入与服务解析
前阵子同事发来一段代码找我排查,他说在控制器里用 app(UserService::class) 拿到的对象,和自己 n…
