Articles

技术文章

沉淀 AI、Web、云原生和独立开发经验。

@admin·3 分钟阅读·Web 开发

N+1 查询问题:ORM 的隐形性能杀手

一个列表查 1 次 + N 个关联各查 1 次 = N+1 次查询,慢十倍。本文讲清 N+1 是怎么产生的(ORM 懒加载陷阱)、怎么发现(日志/ORM 的 explain)、怎么修(eager loading/include/join),以及从根本防住(ORM 默认 eager + 查询审查)。

#TypeScript #DevOps♥ 1100 评论
@admin·3 分钟阅读·Web 开发

React Suspense 与数据获取

Suspense 让"组件等数据"变得声明式——不用手动管理 loading 状态,Suspense 边界自动展示 fallback。本文讲清 Suspense 的工作原理、和 React Query/TanStack Query 的配合、流式 SSR(Server Components + Suspense),以及 Suspense 的边界在哪(不是所有异步都该包 Suspense)。

#Next.js #React♥ 1110 评论
@admin·3 分钟阅读·云原生

PostgreSQL 触发器与存储函数

有些逻辑放数据库(触发器/函数)比放应用层高效——自动审计、级联更新、数据校验。但滥用触发器会让逻辑隐式、难调试。本文讲清 PG 触发器/函数的写法、适合的场景、不适合的场景,以及"触发器是双刃剑"的克制原则。

#DevOps♥ 1120 评论
@admin·3 分钟阅读·Web 开发

实时 Web:SSE 与 WebSocket 深度对比

服务端推送需求一来,就纠结 SSE 还是 WebSocket?本文讲清两者的本质区别(SSE 单向/HTTP/简单,WebSocket 双向/独立协议/灵活)、各自适合的场景、代理/防火墙兼容性、连接数限制,给一份"什么场景选哪个"的明确结论。

#Next.js #TypeScript♥ 1130 评论
@admin·3 分钟阅读·云原生

后台任务队列设计:把慢活移出请求

发邮件/生成报表/处理上传——这些慢操作放请求里会超时,放后台队列异步处理。本文讲清后台队列的核心(入队/worker/重试/监控)、选型(BullMQ/Sidekiq/Celery)、延迟与定时任务、幂等,以及"什么活该异步"的判断。

#DevOps♥ 1140 评论
@admin·2 分钟阅读·云原生

读副本与读写分离

读多写少?加读副本把读分摊到多个库,主库只管写。本文讲清读副本的架构(主从复制)、读写分离的实现(应用层路由/代理层)、复制延迟的一致性陷阱、以及什么时候该上读副本(读量是瓶颈时)什么时候不该。

#DevOps♥ 1150 评论