后端vibe coding

Contents

课程目录

Chapter 01

什么是后端

Chapter 01

用户的操作是如何运行的

用户
点击 / 输入
前端

Web / App / 小程序 / 其他 GUI

发送 API 请求
API
服务器
后端程序

鉴权 / 数据校验 / 路由 / 业务逻辑实现

数据库

增 / 删 / 查 / 改

Chapter 01

一次后端请求的内部旅程

01 Request

接收请求

后端先接住来自前端的接口请求,拿到路径、参数和用户上下文。

请求进入系统
02 Check

校验与鉴权

判断参数是否合法、用户有没有权限,先拦住不合规请求。

先确认能不能处理
03 Logic

进入业务逻辑

根据接口目标执行对应逻辑,比如算价格、生成订单、更新状态。

真正开始做事
04 Data

读写数据库

需要数据时查询数据库,需要保存结果时再把新状态写回去。

拿数据或改数据
05 Response

组织并返回响应

把最终结果整理成接口响应,返回给前端,再展示给用户。

把结果送回前端
后端 =
接收指令
计算 / 判断 / 校验
读写数据
返回结果
Chapter 01

后端及开发场景

1

脚本 / 批量任务处理

特征 一次触发后自动执行,适合批量、定时、周期性处理。
例子 每天凌晨统计销售数据、同步库存、批量生成报表。
2

接入已有产品的服务 / 接口

特征 持续在线,专门给现有 Web、App、小程序提供后端能力。
例子 给已有商城接入登录、下单、支付、查询等后端接口。
3

开发完整的前后端产品

特征 不仅写后端,还要和前端、数据库、部署一起构成完整产品。
例子 从 0 开发一个课程平台、管理后台、题库工具或小型 SaaS。
Chapter 02

为什么需要后端

Chapter 02

为什么需要后端

Data

数据

后端要先想清楚存什么、怎么查、怎么改,因为所有结果最终都落在数据上。

Logic

业务逻辑

规则、状态流转、条件判断、接口处理都属于逻辑层,它决定数据怎样被使用。

Security

安全

权限、鉴权、参数校验、风险控制包裹在最外层,保证系统不会被误用或滥用。

安全
业务逻辑
数据
数据
业务逻辑
安全
Summary

后端本质是为了按照我们想要的业务逻辑,更安全的接收、处理、提供数据。

Chapter 03

怎样后端vibe coding

Chapter 03

数据层需要考虑什么

01

存哪里?

先判断数据最终应该落在哪一类存储位置。

数据库 永久 / 可查询 / 一致性强
缓存 高速 / 临时 / 可能丢
文件 大文件 / 非结构化 / 长期
内存 极快 / 进程结束即丢
02

用什么工具?

确定了存储位置后,再选具体技术栈和组件。

数据库 MySQL / PostgreSQL / MongoDB
缓存 Redis / Memcached
文件 本地文件系统 / OSS / S3
内存 变量 / 数组 / 字典
03

以什么方式存?

最后决定数据模型和结构,决定系统如何理解这份数据。

结构化 表 / JSON / 固定字段
半结构化 键值对 / 文档
非结构化 文本 / 图片 / 视频 / 二进制
Chapter 03

提示词示例

Prompt 01

存哪里?

先让 AI 只判断不同数据该落在哪类存储位置。

我在做一个课程平台后端。请只从“存储位置”角度分析下面这些数据分别应该放在哪里,并说明原因:

用户资料、课程信息、订单记录、上传文件、短信验证码、登录态。

候选范围只允许使用:数据库、缓存、文件存储、进程内存。
Prompt 02

用什么工具?

确定存储类型后,再让 AI 往下细化到具体组件。

已知我要分别使用数据库、缓存、文件存储来承载课程平台的数据。请帮我继续细化工具选型:

1. 哪些数据适合 MySQL / PostgreSQL / MongoDB
2. 哪些数据适合 Redis
3. 哪些文件适合 OSS / S3

请结合查询频率、数据规模、一致性要求来说明。
Prompt 03

以什么方式存?

最后把问题收敛到数据结构和组织方式。

请继续帮我设计课程平台的数据结构,不用写代码,只回答“应该怎么组织数据”:

对象包括:用户、课程、订单、购物车、操作日志、上传文件元信息。

请分别判断它们更适合:
1. 表结构
2. JSON / 文档结构
3. 键值结构
4. 非结构化文件

并说明为什么。
Chapter 03

业务逻辑层需要考虑什么

01

模块拆分

这个业务可以分成哪几件独立的事?

例子 库存校验 / 创建订单 / 扣库存 / 支付 / 发消息
02

时序逻辑

这几件事按什么顺序做?哪些可以并行?

串行 A 完成后再做 B
并行 A 和 B 同时做
条件 满足条件才做 C
循环 重复执行直到满足条件
03

异常路径

每一步失败了怎么办?

重试 网络抖动时重试
跳过 非关键步骤跳过
回滚 撤销前序步骤
报警 通知人工介入
04

外部依赖

调外部服务时超时或报错怎么办?

熔断 快速失败保护自己
降级 返回默认值 / 缓存
异步重试 放进队列稍后处理
Chapter 03

提示词示例

Prompt 01

模块拆分

让 AI 先把业务拆成几个独立职责,不急着排顺序。

我要做一个下单接口。请先不要写代码,只帮我拆这个接口涉及的业务模块。

场景:用户提交订单后,需要校验商品、校验库存、创建订单、扣库存、发起支付、发送通知。

请输出:
1. 可以拆成哪些模块
2. 每个模块负责什么
Prompt 02

时序逻辑

单独问顺序,能让 AI 更容易讲清串行、并行和条件关系。

基于“下单接口”这个场景,请只分析执行顺序,不要讲数据库设计。

请判断:
1. 哪些步骤必须串行
2. 哪些步骤可以并行
3. 哪些步骤要在支付成功后才能继续
4. 最终给我一版清晰的流程顺序
Prompt 03

异常路径

把失败场景单独拆出来,能避免 AI 只讲理想流程。

请继续围绕“下单接口”分析异常路径,不要写代码。

请分别说明:
1. 库存不足怎么办
2. 创建订单失败怎么办
3. 扣库存成功但支付发起失败怎么办
4. 支付成功但通知发送失败怎么办

每一项都给出处理策略。
Prompt 04

外部依赖

把第三方依赖单独提问,AI 输出会更像真正的后端方案。

下单接口依赖外部支付服务和短信服务。请只分析“外部依赖失败时怎么兜底”。

请覆盖:
1. 超时
2. 返回报错
3. 服务短时不可用
4. 重试后仍失败

请给出熔断、降级、异步重试、人工补偿等建议。
Chapter 03

安全层需要考虑什么

01 Identity

身份与权限

先回答“你是谁”和“你能做什么”,避免接口被随意调用。

身份认证
Session / Cookie JWT OAuth2 / SSO API Key
权限控制
RBAC ABAC ACL
02 Data

数据保护

同时考虑传输、存储、展示三个环节,减少敏感数据暴露。

传输加密
TLS / HTTPS 避免链路中被窃听或篡改,对外接口默认启用。
链路
存储加密
密码 → BCrypt / PBKDF2 手机号/身份证 → AES 支付/密钥 → RSA 全盘加密
展示脱敏
掩码展示 如 `138****0000`,只在必要场景显示原始数据。
脱敏
03 Engineering

工程防护

系统还要能记录、拦截、追溯异常与攻击,保证可定位、可恢复。

日志与审计
操作日志 访问日志 审计日志 ELK / Sleuth+Zipkin / SLF4J
常见攻击防护
限流防刷 令牌桶 / 漏桶,如 Redis + Lua。
SQL 注入防护 参数化查询 / ORM,如 MyBatis、JPA。
XSS / CSRF / 暴力破解 输出过滤 / CSP、Token 校验、验证码 / 登录失败锁定。
Chapter 03

提示词示例

Prompt 01

身份与权限

把“谁能访问、能访问什么”拆开问,安全边界会更清楚。

我在做一个管理后台接口。请只从“身份认证 + 权限控制”角度帮我补安全设计。

请分析:
1. 适合用 Session、JWT、SSO 还是 API Key
2. 权限模型适合 RBAC、ABAC 还是 ACL
3. 应该怎样限制普通用户、管理员、超级管理员的操作范围
Prompt 02

数据保护

单独问传输、存储、展示,能避免只停留在“加密”两个字。

请只从“数据保护”角度检查这个管理后台接口的后端设计。

重点覆盖:
1. 传输时如何保护
2. 数据库存储时哪些字段要加密或哈希
3. 返回前端展示时哪些字段要脱敏

对象包括:手机号、身份证号、密码、支付信息、操作记录。
Prompt 03

工程防护

再把日志、限流、常见攻击防护单独收敛成工程清单。

请继续补充这个管理后台接口的工程防护方案,不用写代码。

请按下面几类输出:
1. 日志与审计要记录什么
2. 如何做限流、防刷、防暴力破解
3. 如何防 SQL 注入、XSS、CSRF
4. 出现异常后如何追踪和定位
Next Lesson

Thanks

下一节:5.数据库的应用