从单体 Koa 到四服务博客:一次渐进式架构演进
个人博客从一个 Koa 单体,长成「API + 前台 SSR + 后台 SPA + 边缘 AI」四个服务。复盘每一步拆分的动因——不是为了微服务而微服务,而是每次都被一个具体痛点推着走。
架构与工程实践450

个人博客从一个 Koa 单体,长成「API + 前台 SSR + 后台 SPA + 边缘 AI」四个服务。复盘每一步拆分的动因——不是为了微服务而微服务,而是每次都被一个具体痛点推着走。
架构与工程实践450

用 AWS SDK 的 S3 协议作为统一抽象,让开发环境跑本地 MinIO、生产用阿里云 OSS、未来可换 Cloudflare R2,全靠改环境变量。还要避开 SDK 新版默认校验头踩的坑。
后端工程290

让后端所有出口长一个样——成功走拦截器包装成统一信封,失败走异常过滤器配语义化错误码。前端从此只写一份处理逻辑,再也不用为每个接口的返回结构打补丁。
后端工程360

博客归档页「按年份分组的全部文章」读多写少,适合缓存。但缓存怎么失效才能既实时又稳?我用文章变更事件主动清缓存,再加一个 TTL 兜底,组合出一个稳妥的方案。
后端工程320

把一套基于 Koa 的个人博客后端用 NestJS + Fastify 重写,记录模块化分层、统一响应、依赖注入带来的可维护性提升,以及为什么选 Fastify 而不是 Express。
后端工程280

用短命 access token + 长命 refresh token 兼顾安全与体验,再用一个「全局尽力解析、按需强制校验」的身份守卫,让公开接口也能识别登录态。这是我博客后端的鉴权骨架。
后端工程310

Mongoose 的 Schema 和 TypeScript 类型天然是两份东西,容易写着写着就对不上。Typegoose 用一个 class + 装饰器同时定义二者,让模型既是 schema 又是类型。
后端工程320
