蒜蓉油麦菜¶
📐 度量标准:本菜谱所有模糊表述(块/勺/火候/油温/熟度)均以_spec.md(度量标准库) 为准,可点击各章节锚点查看。 单线程极速任务——蒜蓉爆香是唯一的初始化函数,油麦菜入锅 60s 即返回,翠绿不黄是唯一的测试断言。
常量定义(Constants)¶
| 常量名 | 值 | 来源 |
|---|---|---|
| FIRE_HIGH | 大火(200℃+,火焰包住锅底) | _spec §3 |
| FIRE_LOW | 小火(120-140℃,火焰不舔锅底) | _spec §3 |
| OIL_60 | 五六成热(120-160℃,竹筷快速冒细泡) | _spec §4 |
| SALT | 半小勺(2.5ml,咖啡勺) | _spec §2 |
| SUGAR | 半小勺(2.5ml) | _spec §2 |
| OYSTER_SAUCE | 1勺(15ml,汤勺) | _spec §2 |
| GARLIC | 1整头(约10瓣) | — |
| STIR_TIME | 60s | — |
食材清单(Input)¶
| 食材 | 用量 | 切配规格 | 备注 |
|---|---|---|---|
| 油麦菜 | 400g | 整棵洗净,掐成段(4-5cm,手指长) | _spec §1;嫩叶保留 |
| 蒜 | 1整头(约10瓣) | 切末(<2mm,细沙) | _spec §1;蒜蓉是灵魂,量要足 |
| 盐 | 半小勺(2.5ml) | — | _spec §2 |
预处理(Preprocess)¶
- 洗菜(数据清洗):油麦菜逐叶掰开,清水浸泡 3min 去泥沙,冲洗 2 遍后彻底沥干——带水下锅是这道菜最大的 bug,会导致出水变黄。沥干就像「输入校验」,不通过不进锅。
- 蒜 1 整头全部切末(<2mm),分成两份:一份 2/3 用于爆香,一份 1/3 用于出锅前撒(生蒜提香)。所有 Input 就绪后再开火。
主流程(Main Logic)¶
-
爆香蒜蓉(初始化函数):热锅倒油(比平时多 1 勺,约 2 勺/30ml),油温升至 OIL_60(五六成热),转 FIRE_LOW(小火),下 2/3 蒜末慢慢爆香——这就像
init()函数,必须小火慢煸出金黄色蒜油,if 蒜末变褐发黑: return error,焦蒜是致命 bug。爆香约 40s,蒜香浓郁即可。 -
炒菜(主循环):转 FIRE_HIGH(大火),下沥干的油麦菜,快速翻炒——这就像
for循环遍历叶子节点,每片叶子都要裹上蒜油。while 炒制时间 < STIR_TIME(60s): 大火翻炒,油麦菜从「生脆态」转为「断生态」是一个状态机:生→颜色变深→变软→断生,断生标准为颜色变深变软、无生涩味(_spec §5)。全程不超过 60s,超时就是内存泄漏(叶绿素流失变黄)。 -
调味(参数注入):加入 SALT(半小勺盐)、SUGAR(半小勺糖提鲜)、OYSTER_SAUCE(1勺蚝油),大火翻炒 10s 均匀。调味层次遵循「面向对象继承」:底味(盐)→主味(蚝油)→顶味(糖提鲜+生蒜香),子类继承父类风味再叠加。
-
出锅(返回值):撒剩余 1/3 生蒜末,翻两下立即装盘——生蒜遇热释放最后一波香气,这是「懒加载」,出锅前才触发。
翻车预警(Bug Report)¶
- ⚠️ Bug: 油麦菜变黄出水 → 根因:炒太久 or 菜没沥干 or 火不够大。修复:FIRE_HIGH(大火)全程不超过 60s、菜彻底沥干、断生即出锅,
while 未断生: 炒; 一旦断生: break。 - ⚠️ Bug: 蒜香不足 or 蒜末发苦 → 根因:蒜量不够 or 大火爆香导致焦糊。修复:1 整头蒜是最低配置,FIRE_LOW(小火)慢煸至金黄,焦蒜必须丢弃重来。
- ⚠️ Bug: 菜太咸 → 根因:蚝油本身有咸味还加了正常盐量。修复:SALT 减半小勺即可,蚝油是主咸味来源。
完成标准(Test Cases)¶
| 测试项 | 预期结果 | 判定方法 |
|---|---|---|
| 视觉测试 | 油麦菜翠绿不黄、蒜末金黄、色泽油亮 | 肉眼观察 |
| 口感测试 | 菜叶脆嫩断生、蒜香浓郁、咸鲜微甜 | 品尝 |
| 状态测试 | 盘底无大量积水、仅留薄油蒜汁 | 倾斜盘子观察 |
| 时间测试 | 从开火到出锅 ≤10min | 计时 |