内测反馈渠道上线 · 匿名兜底与 422 探针验证
入档:2026-07-24 来源:PB Arena(pb.tiaozhuxiansheng.com)问题反馈渠道开发,单会话完成 5 文件 +437 行并部署上线(pb-arena 仓库 commit
4e85066) 状态:已上线并线上验证;四条 insight 均有本次实测支撑
一句话总结
给内测产品加反馈渠道,产品上要让”登录不了的人”也能反馈(匿名兜底+限流补偿),工程上先做模式考古照抄现有惯例,上线后用一发”必失败的校验请求”(422 探针)验证路由生效而不留脏数据。
背景与事实
- 任务:PB Arena 内测需要 bug 反馈渠道——用户点按钮弹问卷,填写提交,管理员后台可见可处理。上一会话中断,本会话恢复执行。
- 交付:悬浮按钮+问卷弹窗(前端)、
feedback表 +POST /api/feedback+ 管理端查看/标记接口(后端)、运营后台反馈面板。 - 验证链:
node --check语法 → scratch 库起服务全链路自测(匿名提交 201 / 空标题 422 / 连续提交 429 / 管理员列表筛选与标记) → 部署 → 线上 grep 新 UI + 422 探针确认路由。 - 插曲:GitHub push 连续两次 TLS 握手失败;deploy.ps1 的 Windows scp
lost connection;最终 Git Bash ssh/scp 部署成功,push 稍后重试即通。
四条可复用 insight
1. 反馈渠道匿名兜底律
“登录不了”本身就是最需要被反馈的 bug——反馈接口若要求登录,就把最关键的反馈者挡在门外。 正解=可选认证:带 token 就关联账号,没有就记”匿名用户”;滥用风险不靠登录墙,靠双层限流补偿(本次:匿名按 IP 10 分钟 5 条,登录用户两次间隔 30 秒)。同理适用于一切”报障/求助”类入口:入口的可用性要求必须低于它所服务的故障面。
2. 零迁移建表(顺着项目既有惯例)
项目把全量 schema 写成 CREATE TABLE IF NOT EXISTS 常量、每次启动执行——这种惯例下加新表=往 schema 常量里添一段,线上老库重启自动补表,零迁移脚本。动手前值得先确认项目的建表/迁移惯例,能白拿的机制不要自己再发明一套。
3. 422 探针:线上验证不留脏数据
上线后要独立验证新接口真的活了,但往生产库提交真数据会污染后台。正解=发一个”必然被业务校验拒绝”的请求(如空 body),看到 422 即三证合一:路由已部署、代码已重启生效、校验逻辑在工作;而 404/503 立刻暴露没部署成功。 零脏数据,一条 curl 收口。是 交付前实测证伪律_v1 的”最小探针”在交付后线上核查场景的变体。
4. 模式考古先行(无框架大文件项目)
目标项目是无框架 Node(99KB database.js + 53KB 手写路由 app.js)。动手前先 grep 出最相似的既有功能(聊天消息、审计日志)把完整模式摸清:路由字符串匹配写法、publicXxx 序列化层、限流 Map、审计日志钩子——然后逐层照抄。架构决策成本≈0,437 行一次通过零返工。 在惯例强的存量代码库里,“考古 30 分钟”比”按自己习惯写”快且不留风格裂缝。
两条顺手教训
- push 失败 ≠ 不能部署:部署链路是本地 HEAD 打包 scp 直传服务器(
E:\pb-arena\deploy\deploy.ps1,库外资产),与 GitHub 完全解耦;GitHub 抽风时先上线再补 push。自动化会话里 Windows scp/ssh 不可靠,用 Git Bash 的 ssh/scp。 - 恢复中断会话,第一真相源是
git status:工作树干净=上个会话没留半成品,直接从头做;不要靠猜测或翻聊天记录复原状态。
关联文档
- ⚠️ 赛事状态机到点不切换_写入方不等于推进方_v1 —— 同项目续篇:本篇建起来的反馈渠道收到第一批真实反馈,续篇是首轮处理(赛事状态机到点不切换 + 后台进程控制 + 胶囊压导航)
- 交付前实测证伪律_v1 —— 同族纪律:交付前写最小探针证伪假设;本篇 422 探针是它在”交付后线上核查”的变体
- ⭐ 静态站接账号系统_内容归git状态归库的双源切分_v1 —— 同族产品判断的另一个方向:本篇是「反馈入口的可用性要求必须低于它所服务的故障面」(所以匿名可用),那篇是「支付相关入口要高于资金流」(所以读站零门槛、只有认领任务才要登录)——登录墙的位置该对齐它真正保护的东西
- ⚠️ 云端定时内容生产连环坑复盘_全绿不等于已发_v1 —— 同一验证纪律:“部署命令跑完”≠“线上真生效”,必须独立核查
- ⚠️ 本地部署FastAPI静态站到3000端口_复盘_v1 —— 同为”本地起服务+HTTP 实测”的验证链路;本次 503 也是同款静态目录路径解析坑(cwd 相对路径)
- ⚠️ 美工改稿全站落地_跨稿重复才是规范_v1 —— 同项目下游终点:本篇建起来的这条反馈渠道收上来的「状态显示有点丑 / UI 出图中页面」等视觉类反馈,最终促成了那次美工成套改稿的全站落地——渠道 → 反馈 → 改稿 → 上线的完整闭环