Вопрос с собеседования · DevOps

Чем 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 → деплой

Подробно

Сравнение:

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

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

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

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

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

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

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Trunk-based — короткие ветки и частые слияния; GitFlow — для редких релизов
  • ✗GitFlow — короткие ветки и частые слияния; trunk-based — для редких релизов
  • ✗GitFlow лучше всего подходит для частых выкаток веб-сервиса
  • ✗Feature flags нужны только в GitFlow

Разбор темы

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

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования