李凯锋KAIFENG LI
← 所有项目在电脑前工作的水獭

湾大跑腿 · 校园跑腿平台与命名空间研究

协同完成校园跑腿平台课程项目,负责规范、合并、联调测试与 debug;项目收口后进一步产出可复算的前后端命名空间研究报告和证据包。

我的角色Tutor / 项目协调、联调测试与研究产出
项目状态📦 课程项目已交付

项目背景

“湾大跑腿”是计算机课程期末项目,面向校内代取快递、代买物品和校内送物等轻量场景。普通用户既能发布任务,也能接取他人的任务;管理员负责用户、订单、公告、申诉和系统设置。

项目采用前后端分离架构:前端使用 Vue 3、TypeScript、Pinia 和 Axios,后端使用 FastAPI、SQLAlchemy、Pydantic 和 SQLite。订单围绕状态机流转,并通过接单人收款码完成线下付款演示。

我的角色

两位组员分别负责前端和后端,并各自与 AI 协作开发。我以 Tutor / 协调者 的角色参与项目,主要负责:

  • 在开发前整理产品规格、API 约定和前后端协作规则,明确路径、字段、状态值与权限边界;
  • 合并前后端分支,处理并行开发后的接口悬空、字段不一致和页面联调问题;
  • 组织测试与 debug,检查订单状态流转、用户权限、申诉处理和收款流程;
  • 在项目收口阶段补齐用户注册、订单大厅接入和面向演示的页面文案;
  • 整理当前状态、接口契约、演示脚本、浏览器验收清单和最终 README,让项目能够交接和复现。

这不是一次“把前端和后端拼起来就结束”的协作。项目经历了两轮前后端并行开发、合并与扫尾,我需要持续判断哪些问题应该统一源头,哪些差异应该在边界层转换。

平台交付结果

最终课程交付版覆盖了完整的本地演示主线:

  • 用户注册、登录、资料维护与收款码上传;
  • 发布任务、订单大厅、接单、配送、确认收货和确认收款;
  • pending → accepted → delivering → waiting_confirm → waiting_payment → paid 的订单状态闭环;
  • 用户申诉以及管理员处理异常订单;
  • 管理员公告、订单、用户、申诉和系统设置管理;
  • FastAPI 接口测试、前端构建检查、演示数据重置和现场演示脚本。

项目定位是课程演示,不接入真实支付、校园统一身份认证或生产级部署。收款码只用于线下结算流程展示。

进一步产出:前后端命名空间研究

项目完成后,我没有只保留最终代码,而是把这次 AI 协作开发过程转成了一个可研究的问题:同一个业务概念在什么情况下会被前后端命名为同一个字段,又为什么会产生不同名字?

我对四个开发阶段的代码快照进行了静态扫描和 Git 演进分析,覆盖后端契约、数据模型、Pydantic schema、路由、seed 配置,以及前端类型、API 封装、mock、状态管理和 normalize.ts 等层。最终口径识别出:

  • 104 个跨项目唯一字段名;
  • 45 个前后端同名字段;
  • 31 个后端独有字段和 28 个前端独有字段;
  • 自动提取并核验 12 组别名关系,例如 creator_id ↔ poster_id、access_token ↔ token;
  • 追踪字段差异在两轮并行开发、合并与扫尾过程中的产生和保留方式。

研究成果包

这项研究最终形成了一套可以从源代码重新计算的成果,而不只是结论性文字:

  • 一份完整项目报告和一份适合快速阅读的精简报告;
  • scan_v2.py 静态扫描器,可从四份代码快照重建统计结果;
  • 原始 JSON、字段台账、阶段汇总、Git 提交分析和别名轨迹;
  • 四份独立附录:项目时间线、12 组别名证据卡、研究方法演进和代码位置索引;
  • 带源码位置、提交历史和反事实分析的全链路证据目录;
  • 精简包、完整包和归档包,方便阅读、复算与交接。

这部分产出保存在课程研究交付目录中。由于课程源码没有对外发布许可,项目页面只记录方法和结论,不公开仓库及原始证据文件。

研究结论

分析发现,同义字段是否同名,并不只是“命名规范有没有执行”的问题:

  • 共享契约、核心业务实体、通用技术惯例和已经稳定联调的接口,会推动前后端使用同一个名字;
  • UI 展示、数据库持久化、状态机、角色上下文和不同语言习惯,会让同一个概念出现合理的不同名字;
  • AI 会在规则明确的区域复用已有命名,也会在契约空白处根据各自的前端或后端上下文放大差异;
  • normalize.ts 等适配层能让项目运行,但也可能把字段漂移长期隐藏起来。

因此,治理目标不应该是“所有字段必须同名”,而应该是:核心契约字段必须统一,合理别名必须有台账、有集中转换、有测试,也能追溯到产生原因。

这段经历

这次课程项目让我同时经历了产品协作、工程收口和研究复盘。前半段要让多个开发者和多个 AI Agent 的代码真正跑到一起;后半段则把联调中反复出现的字段问题转成数据、证据和可复算的方法。

相比“完成了一个网站”,我更看重这次额外产出的能力:从一次具体工程中提炼问题,建立口径,编写工具,核验数字,再把结论组织成其他人能够复查和复用的材料。

Thanks for reading.

写作、创造,以及生活中的小发现。

邮件交流 ↗ 回到开头 ↑