当前位置: 首页 > news >正文

四、后端开发场景实战:接口、数据、故障处理

四、后端开发场景实战:接口、数据、故障处理

后端为什么更需要“边界清楚”

前端很多返工是视觉和体验问题,后端很多返工直接就是稳定性和事故问题。

比如:

  1. 接口字段名改了,前端全挂。
  2. 迁移脚本写错,数据库状态不一致。
  3. 幂等没考虑,重复请求把数据写乱了。
  4. 外部依赖慢了,整个链路跟着超时。

这些问题有个共同点:

不是代码不能跑,而是风险太大。

所以后端的 AGENTS.md 不用写很多花样,重点是把高风险规则卡死。

一个很典型的场景

需求:加一个“批量导出订单”的接口。

很多人会觉得这就是写个导出逻辑,开个下载链接。

但现实里很快会遇到这些问题:

  1. 导出的数据量大,接口不能同步跑完。
  2. 用户反复点导出,会不会重复创建任务?
  3. 历史字段兼容怎么保证?
  4. 导出失败以后怎么追踪?

如果 AGENTS.md 没写相关约束,AI 很容易先给你一个“能跑”的版本,但离上线还差一大截。

后端 AGENTS.md 里最应该先写的内容

1. 接口兼容性

这是后端项目最常见的隐形雷。

建议明确写:

## 接口规则
- 没写兼容性说明,不要直接改公开接口行为
- 能加字段解决的,就不要上来就删旧字段
- 会影响现有调用方的改动,必须先确认

这三条不复杂,但能挡住很多“顺手改字段”的问题。

2. 数据写入规则

尤其是幂等和事务边界。

可以写:

- 可能被重复调用的写接口,要按幂等去设计
- 动数据库结构前,先想好回滚办法

如果不写,AI 往往会默认“写进去就算成功”,不会先想重试和重复请求。

3. 外部依赖规则

这是线上稳定性的基本盘。

- 调外部服务必须带超时
- 要不要重试、怎么重试,要写明白
- 失败要能在日志或监控里看见

4. 缺陷修复规则

这一条很适合直接写死:

- 线上事故修复必须补回归测试

别嫌它硬,这条在后端尤其值。

一个更完整的后端版示例

# AGENTS.md## 作用范围
- services/api 是主 HTTP 服务
- db/migrations 放数据库变更## 必跑命令
- make lint
- make test## 接口规则
- 能兼容就尽量兼容,不要顺手改掉老行为
- 会影响调用方的改动,要先确认并写清说明## 数据规则
- 可能重复触发的写路径要考虑幂等
- 迁移脚本要把回滚思路想清楚## 风险边界
- 动鉴权、计费、基础设施配置前先确认
- 不要直接跑破坏性数据库脚本## 最终汇报
- 先说行为有没有变化
- 再说怎么验证的
- 最后说剩余的运行风险

一个实打实的“坏例子”

下面这种实现,很多时候 AI 会给出来,而且代码表面看没毛病:

public async Task<string> CreateExportJobAsync(ExportQuery query)
{var job = new ExportJob { Query = query, Status = "Pending" };_db.ExportJobs.Add(job);await _db.SaveChangesAsync();return job.Id;
}

这段代码的问题是:

  1. 没考虑重复请求。
  2. 没考虑异步任务投递失败。
  3. 没有任何可观测信息。
  4. 没交代任务状态流转。

如果 AGENTS.md 里已经强调“写路径幂等、外部依赖可观测、行为变化要解释”,AI 至少会更容易往正确方向靠。

一个更稳一点的方向

public async Task<string> CreateExportJobAsync(string userId, ExportQuery query, CancellationToken ct)
{var existing = await _repository.FindPendingByUserAndRangeAsync(userId, query, ct);if (existing is not null)return existing.Id;var job = ExportJob.Create(userId, query);await _repository.SaveAsync(job, ct);await _queue.PublishAsync(new ExportRequested(job.Id), ct);return job.Id;
}

这段也不是说一定就完美了,但至少思路上已经更像线上代码:

  1. 先查是否已有任务。
  2. 保存任务和投递动作分清楚。
  3. 行为边界更容易解释。

后端规则为什么更适合写“硬规则”

前端有些规则还能留一点弹性,比如页面风格、布局方式。

后端很多地方不太适合模糊表达。

比如:

坏写法:

请注意数据安全。

好写法:

- 没明确确认之前,不要改鉴权逻辑
- 只要涉及 schema 变更,迁移脚本就要额外过一遍
- 新写入链路要把幂等预期写清楚

后者是能落地的,前者只是态度。

后端最容易漏写的一块:故障处理口径

很多团队写了测试、写了兼容、写了幂等,但忘了定义“失败以后怎么办”。

我很建议至少补上这类规则:

- 异步流程要返回可追踪的请求号或任务号
- 外部依赖失败不能静默吞掉
- 做不到完全成功时,要把降级行为说明白

因为后端问题最怕“失败了,但没人知道失败在哪”。

什么时候要给后端子目录单独放 AGENTS.md

如果仓库里这些内容差异明显,就很值得拆:

  1. API 服务和异步 worker 在同仓库。
  2. 应用代码和基础设施代码混在一起。
  3. 迁移脚本、运维脚本、业务代码规则完全不同。

拆分以后会更清楚:

  1. 根目录:通用风险边界。
  2. services/api/AGENTS.md:接口和行为规则。
  3. workers/AGENTS.md:异步任务和重试策略。
  4. db/AGENTS.md:迁移和数据规则。

如何判断一条后端规则值不值得写进 AGENTS.md

我一般只看两个问题:

  1. 这事出错会不会贵?
  2. 这事是不是已经在 review 里重复出现?

如果两个答案都是“会”,那就很值得写。

比如:

  1. 幂等
  2. 兼容性
  3. 迁移回滚
  4. 权限变更
  5. 外部依赖超时

这些都属于典型高价值规则。

小结

后端场景里的 AGENTS.md,不需要追求写得很花,重点就是把那些“出了问题代价很高”的地方说死。

接口兼容、幂等、迁移、依赖超时、回归测试,这几类只要先写清楚,很多低级事故就能提前避开。

http://www.jsqmd.com/news/537174/

相关文章:

  • MangoHud日志数据可视化在线工具:无需安装的终极性能分析指南
  • 2026杭州财务/财税方案/疑难税务代办/财税公司服务十强推荐:浙江乘风财务咨询解决各类财税难题 - 栗子测评
  • Apache OpenWhisk多语言函数开发终极指南:Node.js、Python、Java实战解析
  • 【亲测免费】 耗子面板常见问题解决方案
  • 【免费下载】 OpenCV/CVAT 图像标注工具安装指南
  • java毕业设计基于springboot露营地管理系统
  • clmystery终极指南:利用通配符和文件模式匹配破解命令行谋杀案
  • Apache OpenWhisk版本升级指南:平滑迁移与兼容性处理
  • 快速体验AI绘画:用PyTorch 2.9镜像生成你的第一张AI图片
  • CSOS:面向I2C机器人的语义化控制中间件
  • LFM2.5-1.2B-Thinking-GGUF开发者案例:为开源硬件项目自动生成README与API文档
  • Uvicorn与RethinkDB Changefeeds:构建实时数据变更推送服务的终极指南 [特殊字符]
  • 终极指南:Cobalt项目模块路径问题分析与完美解决方案
  • 【2025最新】基于SpringBoot+Vue的校园志愿者管理系统管理系统源码+MyBatis+MySQL
  • Llama-3.2V-11B-cot效果对比:单卡vs双卡4090在CoT长推理任务中的稳定性差异
  • 如何快速掌握Rainmeter皮肤滑块范围控制:最小值/最大值设置完整指南
  • 让 AI 变成 Super 员工的秘密:高效训练 Skills
  • Python 3.14 JIT加速实测:从3.2x到17.8x吞吐提升,6步完成生产环境零风险热启优化
  • 离线环境部署:OpenClaw+GLM-4.7-Flash在内网服务器的适配方案
  • 如何通过MangoHud实现游戏控制器LED颜色的个性化映射
  • 终极Cobalt项目下载文件保存路径设置指南:从入门到精通
  • 5个Go语言创业公司成功案例:如何用Awesome Go打造技术产品
  • asp毕业设计下载(全套源码+配套论文)——基于asp+access的网上聊天室设计与实现
  • mPLUG图文理解惊艳效果:跨模态对齐能力在真实图片中验证
  • 终极指南:URI.js构建与打包全流程解析
  • 1901-2024年我国省市县三级逐月潜在蒸散发数据(Shp/Excel格式)
  • HunyuanVideo-Foley部署案例:单卡24G显存实现稳定批量音效生成
  • 终极解决方案:快速修复Cobalt项目Docker容器启动报错问题
  • 传统FAQ智能客服系统效率提升实战:从架构优化到精准意图识别
  • Baseweb骨架屏设计:提升用户感知性能的终极指南