后端已经跑通——本周给它装上前端、逼出 bug、修到可靠,最后让任何人 clone 后都能一键跑起来。 中间有一堂特别的课:AI-free 调试日——关掉所有 AI,只靠自己。
| 时间 | 环节 | 要点 |
|---|---|---|
| 0–12 | 联调三坑精讲 | CORS 中间件 / 字段核对 / 流式 SSE——每个坑一个排查口诀 |
| 12–28 | 前端开发 | 最小可用界面先跑通;UX 三要素(加载/错误/空状态) |
| 28–40 | 前端走查 | 随机抽两组投影走查——用户视角全班一起评 |
| 40–52 | AI-free 规则宣布 | 关闭所有 AI;四件武器:读报错/print 二分/断点/最小复现 |
| 52–70 | 调试实战 | 按边界清单折腾自己的应用→记 Bug 清单→逐个修;教师只教方法不给答案 |
| 70–82 | Bug Bash | 两批互测 15 分钟一轮;规范提交:复现+预期+实际 |
| 82–92 | 修复冲刺 | 按优先级修 issue;关键 bug 写回归 assert |
| 92–100 | 部署就绪 | .env.example + requirements + README;换人 clone 能跑=底线 |
AI-free 调试日课后解禁——把卡住的问题变成问 AI 的好问题。
CORSMiddleware(allow_origins=[前端地址])——是配置机制,不是绕开。reply 前端读 answer → undefined。排查口诀:对着接口文档逐字核对。UX 三要素顺手补齐:加载状态(点了要有反馈)、错误提示(别白屏)、空状态(「还没有对话,开始聊吧」)。
为什么?——建立「没有 AI 时我能做什么」的能力底座。工具越强,越要知道自己值多少。
课堂节奏:先按「边界场景清单」折腾自己的应用(空输入/超长文本/特殊字符/断网),把 bug 逼出来记清单,再逐个修。
my_project/
├── .env.example # 密钥模板:DEEPSEEK_KEY=(留空)
├── requirements.txt # pip freeze 导出的精确清单
├── README.md # 从 clone 到看到界面的每一步
└── app/ ...
项目细节:M6 模块页