Привет, Хабр! Я Полина, продакт платформы «Своё вино» в РСХБ. «Своё вино» — цифровая платформа, запущенная Россельхозбанком, медиаресурс, который объединяет производителей вина, потребителей, сомелье, критиков и всех любителей российского вина. В этой статье мы хотим немного развлечься и сравнить то, что любим и с чем работаем, а заодно раскроем мир виноделия с другой стороны.

Когда айтишник впервые оказывается на винной дегустации, он часто слышит слова, которые звучат почти как профессиональный жаргон. «Терруар», «купаж», «выдержка», «тело», «минеральность». На первый взгляд — чистая поэзия. Но если присмотреться, виноделие и разработка ПО удивительно похожи: и там, и там есть архитектура, сборки, окружения, баги, релизы и очень болезненный процесс производства.

Ниже — попытка честного «перевода» винной терминологии на язык IT с лёгкими флэшбэками к боевым дежурствам по продакшену.

Терруар = окружение

Терруар — это совокупность условий, где растёт виноград: почва, климат, экспозиция склона, высота, ветер, даже микрофлора.

Если перевести на язык разработки, это — ваша среда выполнения.

Один и тот же сорт винограда (как один и тот же код) может вести себя совершенно по‑разному в разных условиях. Пино Нуар в Бургундии — элегантный и сложный. Пино Нуар в жарком климате — мощный и фруктовый.

Как и приложение. В локальной среде работает идеально. В тестовой среде начинает странно себя вести. На проде внезапно проявляет свои «уникальные особенности» и «кто это вообще писал».

Виноделы с этим живут столетиями и называют это «характер терруара». Разработчики — «ну это же прод».

Сорт винограда = язык программирования

Каберне Совиньон, Пино Нуар, Рислинг — это базовые «языки», из которых производится вино.

Каждый сорт имеет свой «синтаксис». Каберне — мощный, строгий, структурный, почти как C++. Пино Нуар — тонкий, капризный, требует аккуратной работы, как Python. Рислинг — может быть сухим, сладким, игристым, лёгким или мощным. Почти как JavaScript: можно сделать всё, вопрос только, стоит ли.

Как и в программировании, результат зависит не от языка, а от таланта, знаний и умений разработчика.

Купаж (бленд) = микросервисная архитектура

Многие великие вина — это не один сорт, а смесь нескольких.Бордосский купаж, он же Бордобленд — классический пример: Каберне Совиньон отвечает за структуру, Мерло — за мягкость и округлость, Каберне Фран за ароматические свойства. Каждый сорт выполняет свою функцию. Звучит знакомо?

Это практически микросервисная архитектура: маленькие независимые компоненты, которые вместе создают систему. Один отвечает за структуру,  другой за пользовательский опыт, третий отвечает за аромат… то есть дополнительные фичи.

Если один компонент падает, баланс системы меняется. Главная проблема та же самая — профессиональная интеграция.

Винтаж = релиз

Винтаж — это год урожая. Каждый год выходит новый релиз продукта. Иногда это версия уровня 10/10, когда совпали идеальная погода, здоровый виноград, руки мастера, грамотный купаж.

Иногда — стабильная рабочая сборка. Базовое вино, которым никого не удивить, но вполне рабочий вариант. Иногда — релиз, о котором стараются не вспоминать.

Иногда — патч‑версия: если год сложный, виноделу приходится спасать проект. Фактически это звучит так: «В каком релизе меньше багов?».

Выдержка = долгосрочный рефакторинг

Когда вино выдерживают в бочке или бутылке, оно постепенно меняется. Танины округляются, аромат становится сложнее. Но есть нюанс. Выдержка — это инвестиция времени и ресурсов.

Это похоже на технический долг. Если всё сделано правильно, система становится глубже и устойчивее. Если нет, через несколько лет открываешь бутылку и понимаешь, что зря ждал.

Хорошая архитектура со временем становится красивее, а плохая превращается в настоящий музей технического долга.

Дегустация = код-ревью

Дегустация — это не «пить и наслаждаться». Это полноценный анализ, в котором вино разбирают буквально по каплям: вид, аромат, структура, баланс, послевкусие. Профессиональная дегустация почти как код-ревью. Все смотрят на один и тот же продукт и делятся мнением:

  • «Здесь слишком много дуба».

  • «Здесь алкоголь выпирает».

  • «А вот это решение вообще спорное».

И всегда есть кто-то, кому всё нравится, лишь бы работало.

Декантация = перезапуск сервиса

Иногда вино после открытия кажется закрытым, немного зажатым. Но стоит перелить его в декантер и подождать 20–30 минут — и оно внезапно начинает работать и раскрываться. Айтишники знают этот паттерн: «А давайте просто перезапустим».

Сомелье = DevOps

Сомелье в ресторане делает примерно то же, что DevOps‑инженер: выбирает правильную бутылку гостю, проверяет состояние, правильно открывает, следит, чтобы всё работало корректно.

И, самое главное, быстро реагирует, если что‑то пошло не так.

Ферментация = сборка проекта

После сбора винограда начинается ферментация. Дрожжи превращают сахар в алкоголь. Это момент, когда всё может пойти не по плану: температура изменилась, дрожжи остановились, процесс завис. Очень похоже на сборку проекта, которая падает на CI.

Дубовая бочка = внешний фреймворк

Выдержка в дубе добавляет вину массу вкусовых и ароматических нюансов. Основные паттерны выдержки вина в дубовой бочке — ваниль, бриошь, специи и более сложные структуры. Везде нужна гармония, если переборщить, появится ощущение, что всё вино несобранное, неловкое, деревянное. Если говорить на профессиональном языке — передубленное. Очень похоже на проекты, где половина функциональности — это фреймворк.

Минеральность = недекларированная возможность

Минеральность — один из самых обсуждаемых терминов в вине. Её сложно описать и ещё сложнее доказать. Но многие уверены, что она есть (спойлер: действительно есть!). Почти как недекларированная возможность в старом коде. Никто точно не знает, как это работает. Но все говорят: «Не трогай, оно важно».

Баги

Вино тоже иногда ломается. Самые известные ошибки в производстве вина — пробковая болезнь (он же корк), окисление, редукция. Разумеется, винный баг обнаруживается тоже только после релиза. Откат невозможен. Логи отсутствуют. Мониторинг — только ваш нос.

Как вы видите, программисты с легкостью могут стать отличными винными энтузиастами. Ведь и там, и там нужно анализировать сложные системы, замечать нюансы, понимать архитектуру. И если после этой статьи вы вдруг окажетесь на дегустации и услышите про терруар, кислотность, баланс и сложный винтаж, не пугайтесь. Скорее всего, это просто местный архитектурный митинг. Только с гораздо более приятным продакшн.

И в завершение предлагаю вам пройти тест на то, каким бы вы были вином. Ответьте на несколько вопросов теста «Какое вы вино как разработчик?»:

Результаты:

Больше A — Совиньон Блан

Быстрый, свежий и эффективный.
Идеален для коротких задач и быстрых решений.

Больше B — Пино Нуар

Элегантный разработчик. Любит чистый код, архитектуру и нюансы.

Больше C — Натуральное вино

Экспериментатор. Иногда гениально, иногда… очень интересно.

Больше D — Каберне Совиньон

Мощный энтерпрайз‑разработчик. Любит сложные системы и большие проекты.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Как вы относитесь к багам?
40%A — быстро фиксирую и иду дальше4
20%B — анализирую архитектуру2
20%C — сначала кофе, потом разберёмся2
20%D — это не баг, это фича2
Проголосовали 10 пользователей. Воздержавшихся нет.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
2. Как вы пишете код?
40%A — просто и эффективно4
30%B — аккуратно и элегантно3
20%C — экспериментально2
10%D — мощно и масштабируемо1
Проголосовали 10 пользователей. Воздержавшихся нет.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
3. Как проходит ваш деплой?
30%A — быстро и без лишних слов3
50%B — осторожно и продуманно5
10%C — иногда неожиданно1
10%D — громко и эффектно1
Проголосовали 10 пользователей. Воздержавшихся нет.