凉拌黄瓜¶
📐 度量标准:本菜谱所有模糊表述(块/勺/火候/油温/熟度)均以_spec.md(度量标准库) 为准,可点击各章节锚点查看。 零编译开销的纯函数——不需要开火(无 CPU 占用),拍碎(数据解构)+ 调味(参数注入)+ 腌制(异步等待),10 分钟返回清爽结果。
常量定义(Constants)¶
| 常量名 | 值 | 来源 |
|---|---|---|
| SALT | 1小勺(5ml,咖啡勺) | _spec §2 |
| SUGAR | 1勺(15ml,汤勺) | _spec §2 |
| VINEGAR | 2勺(30ml,2汤勺) | _spec §2;米醋或香醋 |
| SOY_SAUCE | 1勺(15ml,汤勺) | _spec §2 |
| SESAME_OIL | 半勺(7.5ml,半汤勺) | _spec §2 |
| GARLIC | 5瓣 | — |
| DRIED_CHILI | 2个 | 可选 |
| MARINATE_TIME | 10min | — |
食材清单(Input)¶
| 食材 | 用量 | 切配规格 | 备注 |
|---|---|---|---|
| 黄瓜 | 2根(约300g) | 拍碎后切段(4-5cm,手指长) | _spec §1;拍碎比刀切更入味 |
| 蒜 | 5瓣 | 切末(<2mm,细沙) | _spec §1;蒜是凉拌菜灵魂 |
| 干辣椒 | 2个 | 切段(1cm) | 可选,增香辣 |
| 香菜 | 1根 | 切段(4-5cm) | 可选,增香 |
| 白芝麻 | 1小勺(5ml) | 熟芝麻 | 可选,增香装饰 |
预处理(Preprocess)¶
- 拍黄瓜(数据解构):黄瓜洗净,用刀背平拍至裂开(不要拍太碎),再切成段(4-5cm,手指长)——拍碎的断面粗糙不平,比刀切更易吸附调料,这就是「非结构化数据表面积更大」的烹饪版。拍好后放入大碗。
- 杀水(垃圾回收):黄瓜段中加 SALT(半小勺盐),抓匀腌制 5min,倒掉杀出的水分——这就像「垃圾回收」,黄瓜多余的水分(无用内存)被释放,倒掉后黄瓜更脆、调味更浓。
if 不杀水: 拌好后会出水稀释调料。 - 蒜 5 瓣全部切末(<2mm),干辣椒切段、香菜切段。所有 Input 就绪。
主流程(Main Logic)¶
-
调碗汁(构建配置对象):取一小碗,加入 SUGAR(1勺糖)、VINEGAR(2勺醋)、SOY_SAUCE(1勺生抽)、SESAME_OIL(半勺香油),用勺子搅拌至糖完全溶解——这就像「构建配置对象」,所有调味参数预先配置好,糖和醋的比例是 1:2,这是「酸甜平衡算法」的核心参数。
if 糖没溶解: 多搅 10s,未溶解的糖就是未初始化变量。 -
拌菜(参数注入):杀好水的黄瓜段倒掉水分,加入蒜末、干辣椒段,倒入调好的碗汁——这就像「依赖注入」,碗汁(配置对象)注入到黄瓜(主对象)中。用筷子或勺子从底部向上翻拌均匀,
while 调味不均匀: 继续翻拌,每段黄瓜都要裹上料汁。 -
腌制(异步等待):拌好后静置 MARINATE_TIME(10min),让黄瓜充分入味——这就像「异步等待 Promise.resolve()」,不需要持续操作,时间到了自动返回结果。期间可放入冰箱冷藏,冷藏后更脆爽。
if 着急吃: 最少腌 5min,但 10min 风味最佳。 -
出锅(返回值):撒香菜段、熟白芝麻,装盘。调味层次遵循「面向对象继承」:底味(盐)→主味(醋+糖酸甜)→顶味(蒜香+香油),子类继承父类风味再叠加。
翻车预警(Bug Report)¶
- ⚠️ Bug: 黄瓜出水、味道变淡 → 根因:没杀水 or 腌太久。修复:加盐杀水 5min 倒掉水分,拌好后 10min 内食用,腌太久会持续出水。
- ⚠️ Bug: 蒜味不足 or 蒜发苦 → 根因:蒜量不够 or 蒜切太早氧化发苦。修复:5 瓣蒜是最低配置,蒜现切现用,切好后 10min 内拌入,氧化发苦的蒜必须丢弃。
- ⚠️ Bug: 只有酸味没有鲜味 → 根因:只放了醋没放糖和生抽。修复:SUGAR(1勺糖)提鲜、SOY_SAUCE(1勺生抽)增咸鲜,酸甜咸鲜平衡才是正确输出。
完成标准(Test Cases)¶
| 测试项 | 预期结果 | 判定方法 |
|---|---|---|
| 视觉测试 | 黄瓜翠绿、蒜末洁白、料汁清亮、芝麻点缀 | 肉眼观察 |
| 口感测试 | 黄瓜脆爽、酸甜平衡、蒜香浓郁、咸鲜适口 | 品尝 |
| 状态测试 | 料汁裹附黄瓜、盘底无大量清水、黄瓜不软塌 | 倾斜盘子观察 |
| 时间测试 | 从处理到可食用 ≤15min | 计时 |