Tiana随笔

backend

backend 标签下的全部文章。

接口错误响应应该怎么设计

2026年9月16日 · Python

以前联调接口,后端 500 只回一段文本,前端 res.json 直接抛 SyntaxError,真正的错误被吞掉,只能弹未知错误。我后来花一个小时定了统一错误格式,前后端省下的调试时间远超十倍。

Redis 缓存常见使用方式

2026年9月16日 · Python

改完首页布局传上服务器,无痕窗口和清缓存都试过,页面还是老的。文件名带 hash 也没用,问题出在 Nginx 给 HTML 设了缓存头。这篇顺便记了缓存失效为什么比加缓存难,以及什么情况下才真该上 Redis。

数据库索引的基础理解

2026年9月16日 · Python

一个 200 万行的表,按 author_id 查详情要 8 秒,EXPLAIN 出来是全表扫描。对方说应该有索引吧,指的却是主键。这篇从那次翻车讲起:索引是什么、哪些字段该建、为什么不是越多越好、联合索引的最左前缀。

FastAPI 路由拆分和依赖注入实践

2026年9月16日 · Python

后端最早只有一个 main.py,九个接口不到一百行看着很顺,接口一多就找不着了。我按功能拆成 routes 子文件,拆完跑不起来,因为 include_router 要 import 和注册两步都做。后面讲依赖注入除了拿数据库还能干什么。

Python 装饰器:把重复逻辑收起来

2026年9月16日 · Python

第一次写装饰器我漏了 wraps,函数的名字和文档字符串全变成 wrapper 的。后面记计时、权限校验、缓存、重试四个真在用的装饰器,以及它们各自在哪儿翻过车。

2026 年回头看:FastAPI 还是 Python 后端的甜点位吗

2026年9月10日 · 工程与效率

用了三年多 FastAPI 之后回头评估:新框架层出不穷,它依然是大多数 Python 后端项目的最优默认选择,理由和边界都在这篇。

MCP 入门:给模型插上工具的标准口

2026年9月1日 · Agent 实践

MCP 正在成为 AI 工具调用的通用协议:一次封装,所有支持它的客户端都能用。这篇讲清楚它解决了什么问题,以及怎么写一个自己的 MCP 服务。