扬州炒饭¶
📐 度量标准:本菜谱所有模糊表述(块/勺/火候/油温/熟度)均以_spec.md(度量标准库) 为准,可点击各章节锚点查看。 分布式系统的经典案例——米饭(主节点)+ 鸡蛋(计算节点)+ 杂蔬(数据节点),大火快炒实现最终一致性,粒粒分明是唯一的共识算法。
常量定义(Constants)¶
| 常量名 | 值 | 来源 |
|---|---|---|
| FIRE_HIGH | 大火(200℃+,火焰包住锅底) | _spec §3 |
| FIRE_MID | 中火(160-180℃,火焰舔锅底一半) | _spec §3 |
| OIL_60 | 五六成热(120-160℃,竹筷快速冒细泡) | _spec §4 |
| SALT | 1小勺(5ml,咖啡勺) | _spec §2 |
| SOY_SAUCE | 1勺(15ml,汤勺) | _spec §2 |
| COOKING_WINE | 半勺(7.5ml,半汤勺) | _spec §2 |
| SUGAR | 半小勺(2.5ml) | _spec §2 |
| RICE | 2碗(约500g,隔夜饭最佳) | _spec §2 |
| EGG | 2个 | — |
食材清单(Input)¶
| 食材 | 用量 | 切配规格 | 备注 |
|---|---|---|---|
| 米饭 | 2碗(约500g) | 隔夜冷藏饭,打散至粒粒分明 | 新鲜饭太黏,隔夜饭是硬约束 |
| 鸡蛋 | 2个 | 打散 | — |
| 火腿/午餐肉 | 50g | 切粒(5mm,米粒) | _spec §1 |
| 青豆 | 30g | 整粒 | 速冻青豆即可 |
| 胡萝卜 | 30g | 切粒(5mm,米粒) | _spec §1 |
| 玉米粒 | 30g | 整粒 | 速冻甜玉米 |
| 葱 | 2根 | 切粒(5mm,米粒) | _spec §1 |
| 虾仁 | 50g | 切粒(5mm) | 可选,正宗扬州炒饭有虾仁 |
预处理(Preprocess)¶
- 米饭预处理(数据清洗):隔夜米饭从冰箱取出,用手或勺子轻轻打散至粒粒分明——这就像「数据清洗」,结块的米饭是脏数据,必须打散才能均匀受热。
if 米饭结块严重: 微波炉加热 30s 再打散。 - 杂蔬焯水(编译期优化):青豆、胡萝卜粒、玉米粒放入沸水中焯水 1min,捞出沥干——调用
[_spec §6](_spec.md#preprocess) 焯水()(简化版:沸水→下料 1min→捞出沥干)。焯水去除生涩味、预熟杂蔬,避免炒饭时出水。 - 鸡蛋打散加少许盐,火腿切粒、虾仁切粒、葱切粒。所有 Input 就绪后再开火。
主流程(Main Logic)¶
-
炒蛋(独立节点渲染):热锅倒 2 勺(30ml)油,油温升至 OIL_60(五六成热),倒入蛋液,用筷子快速搅散成碎蛋花——这就像
for循环遍历数组,每个蛋液颗粒都要均匀凝固,while 蛋液未完全凝固: 快速搅散。炒至金黄碎蛋花(约 40s),盛出备用。 -
炒配料(子节点合并):锅留底油,FIRE_HIGH(大火),下火腿粒、虾仁粒翻炒 30s 出香,再下焯好的杂蔬(青豆、胡萝卜、玉米)翻炒 30s——这就像「子节点数据合并」,所有配料先统一预处理再合并到主流程。盛出备用。
-
炒饭(主节点调度):锅中再加 1 勺(15ml)油,FIRE_MID(中火),倒入打散的米饭,用锅铲压散、翻炒——这就像「主节点调度」,米饭是核心,必须每粒都裹上油。
while 米饭有结块: 用锅铲压散,目标状态是粒粒分明、均匀受热。炒约 2min,至米饭微微跳动(锅气十足)。 -
合炒(最终一致性):倒入炒好的蛋花和配料,FIRE_HIGH(大火)快速翻炒 1min——这就像「分布式最终一致性」,所有节点(米饭、蛋、杂蔬、肉)必须均匀混合,
while 颜色不均匀: 继续翻炒,终态是每粒米饭都裹着蛋香和配料。加入 SALT(1小勺盐)、SOY_SAUCE(1勺生抽)、SUGAR(半小勺糖提鲜)、COOKING_WINE(半勺料酒沿锅边淋),大火翻炒 30s。调味层次遵循「面向对象继承」:底味(盐)→主味(生抽)→顶味(糖+料酒提香),子类继承父类风味再叠加。 -
出锅(返回值):撒葱粒,翻两下立即装盘。
翻车预警(Bug Report)¶
- ⚠️ Bug: 米饭结块成坨、炒不散 → 根因:用了新鲜饭 or 米饭没提前打散。修复:必须用隔夜冷藏饭,下锅前用手打散至粒粒分明,这是硬约束。
- ⚠️ Bug: 炒饭出水、黏糊糊 → 根因:杂蔬没焯水 or 配料带水回锅。修复:杂蔬提前焯水沥干,所有配料炒好后控油再回锅。
- ⚠️ Bug: 蛋花太大 or 蛋和饭没融合 → 根因:炒蛋时没快速搅散 or 合炒时间不够。修复:蛋液下锅后用筷子快速搅成碎蛋花,合炒时 FIRE_HIGH(大火)翻炒 1min 至均匀。
完成标准(Test Cases)¶
| 测试项 | 预期结果 | 判定方法 |
|---|---|---|
| 视觉测试 | 米饭粒粒分明、金黄油亮、配料色彩丰富均匀 | 肉眼观察 |
| 口感测试 | 米饭干香有嚼劲、蛋香浓郁、配料丰富、咸鲜适口 | 品尝 |
| 状态测试 | 无结块、无多余汤汁、盘底仅留薄油 | 用勺子拨散观察 |
| 时间测试 | 从开火到出锅 ≤15min | 计时 |