浏览 AI 知识库
全栈项目开发顺序:按数据库、接口和页面拆纵向切片
前端全部做完、后端全部做完,不等于产品能跑通。按一个用户流程切出数据库、接口和页面的纵向小闭环,才能尽早暴露契约问题。
沿完整工作流推进
前一阶段的可检查结果,是下一阶段的输入;中间证据不足时停在当前阶段。
两边都说完成了,为什么联调时一个流程也走不通
前端先做完所有页面,后端另做完所有接口,联调时发现订单状态叫法不同、分页格式不同、空值也不一致。两边都“完成”却没有一个流程能用。
- 每个切片能端到端演示
- 字段和状态在同一片验证
- 依赖、责任人和完成证据明确
先确认这次任务的起点、边界和交付
| 需要确认 | 本例内容 |
|---|---|
| 现有材料 | 首期功能为创建项目、查看列表和关闭项目;数据库尚未定稿,团队前后端各两人。 |
| 不能越过的边界 | 按可端到端验收的纵向切片推进;每片包含数据、接口、页面、权限和测试;共享契约先确认。 |
| 要交付的结果 | 纵向功能切片计划 |
从“选最小闭环”走到“按依赖扩展”
| 当前阶段 | 实际处理 |
|---|---|
| 选最小闭环 | 选择一个高价值、低依赖的动作,明确输入、持久化、响应和页面反馈。 |
| 先定契约和状态 | 写实体字段、校验、权限、接口请求响应、错误和页面加载空状态,不急着实现全部字段。 |
| 完成第一条纵向链 | 迁移、数据访问、业务逻辑、接口和页面一起完成,并用真实环境跑通。 |
| 补测试和观测 | 对关键规则做单元或接口测试,对用户流程做浏览器验证,日志能定位每一层。 |
| 按依赖扩展 | 只有上一切片通过验收,才加入新状态、角色和功能,避免同时打开过多未完成模块。 |
从‘新建报销’一直打通到页面反馈
| 层 | 本切片实现 | 证据 |
|---|---|---|
| 数据 | expense_draft 表、金额正数约束、用户归属 | 迁移在测试库执行并可回滚 |
| 业务 | 保存草稿时校验发票状态和当前用户 | 单测覆盖空金额与越权 |
| 接口 | POST /api/expenses/drafts 返回 201/400/403 | 接口测试保存请求与响应 |
| 页面 | 表单、上传中、错误提示、草稿成功状态 | 浏览器测试完成一次保存 |
| 观测 | 请求 ID、用户 ID 脱敏、失败原因 | 日志能从页面错误追到接口 |
完成后的纵向功能切片计划
切片一只做创建项目,从迁移到 POST 接口、表单和成功/失败测试一起交付;切片二做列表分页;切片三做关闭与权限。每片结束都能在浏览器完成真实操作,字段契约随片验证。
为什么“切片很小,仍然相互阻塞”还不能交付
切片很小,仍然相互阻塞
- 原因
- 共享认证或基础迁移没有作为前置
- 怎么改
- 把真正共享的薄层先建好,其他工作按切片所有权分开
