WEEK 15 / 16 综合项目 · 前端联调 / 调试日 / Bug Bash / 部署
PYTHON 程序设计 · V2 · 第 15 周(100 分钟 · L35–L39)

让应用变得
能用、可靠、可交付

后端已经跑通——本周给它装上前端、逼出 bug、修到可靠,最后让任何人 clone 后都能一键跑起来。 中间有一堂特别的课:AI-free 调试日——关掉所有 AI,只靠自己。

所属模块 M6 综合项目← → 翻页 · F 全屏

今日课表(100 分钟)

时间环节要点
0–12联调三坑精讲CORS 中间件 / 字段核对 / 流式 SSE——每个坑一个排查口诀
12–28前端开发最小可用界面先跑通;UX 三要素(加载/错误/空状态)
28–40前端走查随机抽两组投影走查——用户视角全班一起评
40–52AI-free 规则宣布关闭所有 AI;四件武器:读报错/print 二分/断点/最小复现
52–70调试实战按边界清单折腾自己的应用→记 Bug 清单→逐个修;教师只教方法不给答案
70–82Bug Bash两批互测 15 分钟一轮;规范提交:复现+预期+实际
82–92修复冲刺按优先级修 issue;关键 bug 写回归 assert
92–100部署就绪.env.example + requirements + README;换人 clone 能跑=底线

AI-free 调试日课后解禁——把卡住的问题变成问 AI 的好问题。

前端联调:三大坑速查

① CORS 后端加 CORSMiddleware(allow_origins=[前端地址])——是配置机制,不是绕开。
② 字段名不匹配 后端返 reply 前端读 answer → undefined。排查口诀:对着接口文档逐字核对。
③ 流式渲染 后端 StreamingResponse + 前端 fetch + getReader() 逐块读——打字机效果的技术内核。

UX 三要素顺手补齐:加载状态(点了要有反馈)、错误提示(别白屏)、空状态(「还没有对话,开始聊吧」)。

AI-free 调试日:规则宣布

从现在起关闭所有 AI 工具。只允许用 print / 日志 / 断点 / 读报错,修自己项目里的 bug。

为什么?——建立「没有 AI 时我能做什么」的能力底座。工具越强,越要知道自己值多少。

课后解禁的学习姿势:把今天卡住的问题拿去问 AI——不是让它修,而是让它 讲透原理、出变式题自测。调试经历转化为问题,才是把 AI 用成老师。

没有 AI 时的四件武器

武器一读报错 Traceback 从最后一行往前读——最后一行是错误类型,往上找到你自己代码的那一帧。
武器二print 二分 怀疑哪段就打哪段——在中间打一个 print,值不对就再对半排查。
武器三断点调试 VSCode 行号左侧点一下 → F5 → 单步走,亲眼看变量变化。
武器四最小复现 把 bug 剥到最小可运行示例——往往剥着剥着自己就看出来了。

课堂节奏:先按「边界场景清单」折腾自己的应用(空输入/超长文本/特殊字符/断网),把 bug 逼出来记清单,再逐个修。

Bug Bash:全班互测

A 批演示
保持运行
⇄
B 批测试
15 分钟一轮
→
互换角色
→
修复冲刺

部署就绪:让别人也能跑

my_project/
├── .env.example        # 密钥模板:DEEPSEEK_KEY=(留空)
├── requirements.txt   # pip freeze 导出的精确清单
├── README.md          # 从 clone 到看到界面的每一步
└── app/ ...

随堂自查(3 题)

交互 · 点击选项作答

课后与答辩周预告

本周课后
  • 清零 Bug Bash 收到的关键 issue
  • 完成 README 与 .env.example
  • 开始整理 AI 协作日志(关键 prompt、人工修改及原因)
下周:W16 打磨、答辩与课程总结 演示彩排与文档定稿 → 答辩 → 复盘。答辩时随机指行提问——每一行都要能讲清。 提前看答辩周课件 →

项目细节:M6 模块页