技术 文章
Laravel 用 Horizon 接管 Redis 队列:监控、失败重试与伸缩
安装与配置Horizon 是官方队列仪表盘,基于 Redis,把队列的吞吐、失败、延迟全部可视化。先装包并发布配置,再把默认队列驱动指向 redis。composer require laravel/horizon php artisan ...
Rust 用 once_cell 管理全局配置与单例连接:初始化只跑一次
为什么不用 lazy_staticlazy_static 靠宏生成静态变量,类型推导和 IDE 支持都一般。once_cell 提供 Lazy 与 OnceCell,用普通 API 表达一次性初始化,编译报错更友好,也是标准库 once_c...
Go JWT 鉴权中间件:用 golang-jwt 签发校验并注入上下文
签发 token:claims 里放最小必要信息用 github.com/golang-jwt/jwt/v5 签发,密钥从配置读、不要硬编码。claims 里只放用户标识与过期时间,敏感字段不要塞进 token。package auth ...
Vue 3 组合式函数测试:用 Vitest 给 composable 写单元测试
为什么测 composable组合式函数把可复用的状态与副作用从组件里抽出来,它本身有逻辑、有生命周期、有异步。把它当纯函数测,能在界面还没写出来之前就锁定行为,比等到组件集成后再调要便宜得多。测同步 composable:用 nextTi...
React 性能剖析:用 Profiler 与火焰图定位重渲染
为什么需要 Profiler组件树大了以后,页面卡顿往往不是某段逻辑慢,而是一次状态更新触发了不该重渲染的子树。肉眼看不出来,必须靠测量。React DevTools 的 Profiler 面板记录了每一次 commit 的开销与组件,是定...
Laravel 集合 Collections 实战:用高阶函数把数据变换写成流水线
为什么用 Collection数组在 PHP 里能干的事有限,且处理多步变换时要写一堆 foreach。Laravel 的 Collection 提供了一整套链式高阶函数,把“过滤、分组、映射、聚合”拼成一条流水线,读起来就是业务意图本身。...
Rust 用 mockall 做 Mock 测试:给 trait 接口写假实现并验证调用
为什么需要 mock业务代码依赖发邮件、访问数据库、调第三方服务时,单测不该真去连。我们会把这些依赖抽象成 trait,测试时塞一个“假实现”进去。手写假实现很啰嗦,mockall 能根据 trait 自动生成可配置的假对象,并且能断言“有...
Go 模糊测试实战:用 testing.F 与 fuzz target 找出隐藏的边界崩溃
什么是 fuzz 测试单元测试靠你手写的样例,覆盖的是你“想到”的输入。模糊测试让 Go 在种子输入的基础上,自动变异出海量随机输入,持续轰击你的函数,专门抓那些没想到的边界:空串、超长串、特殊字符、负数。Go 1.18 起标准库自带 te...
Vue 3 自定义 ref 实战:用 customRef 封装防抖 ref 与异步 loading ref
customRef 是什么ref 的诞生是自动的:读写就触发依赖收集与更新。但当你想自己掌控“什么时候收集依赖、什么时候触发更新”时,就要用 customRef。它接收一个工厂函数,工厂拿到 track(收集依赖)与 trigger(触发更...
React 严格模式与双调用:useEffect 重复执行、状态初始化陷阱与规避
为什么要有严格模式StrictMode 只在开发环境生效。它的核心手段之一,是把组件函数、某些 Hook 的初始化逻辑重复调用一次,用“多跑一遍”的方式把不纯的代码、藏起来的副作用暴露在开发期。生产构建不会双调用,所以这不是性能问题,而是开...
