### 现象学还原(悬置假设)用于 vibe coding **核心目的** 把“我以为需求是这样”从对话里剥离出去,只留下可观察、可复现、可检验的事实与体验结构,从而让模型在更少臆测的前提下产出可用代码。 --- ## 1) 方法要点(在工程语境下怎么理解) * **悬置(epoché)**:暂时不采纳任何“原因解释/业务推断/最佳实践偏好”。 只记录:发生了什么、期望是什么、约束是什么。 * **还原(reduction)**:把问题还原到“给定输入→经过过程→得到输出”的最小结构。 先不谈架构、模式、技术栈优雅与否。 * **意向性(intentionality)**:明确“这个功能是为谁、在什么情境下、要达成什么体验”。 不是“做个登录”,而是“用户在弱网下也能在 2 秒内完成登录并得到明确反馈”。 --- ## 2) 适用场景 * 需求描述充满抽象词:快、稳定、像某某一样、智能、顺滑。 * 模型开始“自带设定”:自己补产品逻辑、乱选框架、擅自加复杂度。 * Bug 复现困难:偶发、环境相关、输入边界不清。 --- ## 3) 操作流程(可直接照做) ### A. 先“清空解释”,只保留现象 用四件套描述: 1. **现象**:实际发生的结果(含报错/截图/日志片段)。 2. **意图**:我想要的结果(可观察标准)。 3. **情境**:环境与前置条件(版本、平台、网络、权限、数据规模)。 4. **边界**:哪些不需要做/不要假设(不改接口、不引入新依赖、不改数据库结构等)。 ### B. 产出“最小可复现体”(MRE) * 最小输入样例(最短 JSON/最小表/最小请求) * 最小代码片段(去掉无关模块) * 明确复现步骤(1、2、3) * 预期 vs 实际(对照表) ### C. 把“抽象词”降维成可测指标 * “快”→ P95 延迟 < X、冷启动 < Y、吞吐 >= Z * “稳定”→ 错误率 < 0.1%、重试策略、熔断条件 * “好用”→ 交互反馈、错误文案、可撤销/可恢复 --- ## 4) 给模型的提示词模板(可直接复制) **模板 1:还原问题(禁止脑补)** ``` 请先做“现象学还原”:不要推测原因、不要引入额外功能。 只根据我给的信息,输出: 1) 现象(可观察事实) 2) 意图(我想要的可观察结果) 3) 情境(环境/约束) 4) 未确定项(必须问清或需要我补的最小信息) 5) 最小可复现步骤(MRE) 然后再给出最小修复方案与对应测试。 ``` **模板 2:抽象需求变可测规格** ``` 把下面需求做“悬置假设”处理:删掉所有抽象词,转成可验证规格: - 明确输入/输出 - 明确成功/失败判定 - 明确性能/资源指标(如需要) - 明确不做什么 最后给出验收用例列表。 需求:<粘贴> ``` --- ## 5) 在 vibe coding 的具体落地方式(习惯化) * **每次开工先写“现象卡片”**(2 分钟):现象/意图/情境/边界。 * **先让模型复述**:要求它只复述事实与缺口,不许给方案。 * **再进入生成**:方案必须绑定到“可观察验收”与“可证伪测试”。 --- ## 6) 常见陷阱与对策 * **陷阱:把解释当事实**(“可能是缓存导致”) 对策:把“可能”移到“假设列表”,每条假设配验证步骤。 * **陷阱:需求用形容词堆叠** 对策:强制转成指标与用例;不满足“可测”不让写代码。 * **陷阱:模型自选技术栈** 对策:边界里写死:语言/框架/依赖/接口不可变。 --- ## 7) 一句话口诀(便于放进工具箱卡片) **先悬置解释,再固定现象;先写验收标准,再让模型写实现。**