Получить доступ

Чем trunk-based development отличается от GitFlow?

MiddleCI/CD и Git
Ещё спрашивают так:
  • Какую стратегию ветвления вы бы выбрали?
  • Что такое feature flags?
Коротко

GitFlow — долгоживущие ветки develop и main, ветки фич, релизов и хотфиксов; подходит для продуктов с редкими версионированными релизами (коробка, мобильные приложения), но порождает большие слияния и конфликты. Trunk-based — короткие ветки (часы, день-два) сливаются в main часто, main всегда готов к выкатке; незаконченное прячут feature flags. Trunk-based — основа непрерывной поставки.

  • Длинные ветки = поздние конфликты и интеграционные сюрпризы
  • Feature flag отделяет выкатку кода от включения функции: можно включить для 1% или сотрудников
  • Флаги надо удалять после раскатки — иначе технический долг

А ещё GitHub Flow — упрощённый вариант: ветка → PR → ревью → main → деплой

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Сравнение:

GitFlowtrunk-based
веткиdevelop, main, feature, release, hotfixmain и короткие ветки
жизнь веткинеделичасы — дни
релизыпо расписаниюпостоянно
конфликтыкрупные и поздниемелкие и частые
требованияпроцесс релизовхорошие тесты, CI, флаги

Как работать с незаконченной функцией в trunk-based:

  • feature flag выключен по умолчанию;
  • branch by abstraction — новый код за интерфейсом, переключение в конце;
  • тёмный запуск — код работает, но результат не показывается.

Выбор: веб-сервис с частыми выкатками — trunk-based; несколько поддерживаемых версий продукта — release-ветки поверх trunk.

Что хотят услышать

  • Суть обеих моделей.
  • Цена долгоживущих веток.
  • Feature flags и выбор под контекст.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем