Чем trunk-based development отличается от GitFlow?
- Какую стратегию ветвления вы бы выбрали?
- Что такое feature flags?
GitFlow — долгоживущие ветки develop и main, ветки фич, релизов и хотфиксов; подходит для продуктов с редкими версионированными релизами (коробка, мобильные приложения), но порождает большие слияния и конфликты. Trunk-based — короткие ветки (часы, день-два) сливаются в main часто, main всегда готов к выкатке; незаконченное прячут feature flags. Trunk-based — основа непрерывной поставки.
- Длинные ветки = поздние конфликты и интеграционные сюрпризы
- Feature flag отделяет выкатку кода от включения функции: можно включить для 1% или сотрудников
- Флаги надо удалять после раскатки — иначе технический долг
А ещё GitHub Flow — упрощённый вариант: ветка → PR → ревью → main → деплой
Подробно
Сравнение:
| GitFlow | trunk-based | |
|---|---|---|
| ветки | develop, main, feature, release, hotfix | main и короткие ветки |
| жизнь ветки | недели | часы — дни |
| релизы | по расписанию | постоянно |
| конфликты | крупные и поздние | мелкие и частые |
| требования | процесс релизов | хорошие тесты, CI, флаги |
Как работать с незаконченной функцией в trunk-based:
- feature flag выключен по умолчанию;
- branch by abstraction — новый код за интерфейсом, переключение в конце;
- тёмный запуск — код работает, но результат не показывается.
Выбор: веб-сервис с частыми выкатками — trunk-based; несколько поддерживаемых версий продукта — release-ветки поверх trunk.
Что хотят услышать
- Суть обеих моделей.
- Цена долгоживущих веток.
- Feature flags и выбор под контекст.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Trunk-based — короткие ветки и частые слияния; GitFlow — для редких релизов
- ✗GitFlow — короткие ветки и частые слияния; trunk-based — для редких релизов
- ✗GitFlow лучше всего подходит для частых выкаток веб-сервиса
- ✗Feature flags нужны только в GitFlow
Разбор темы
- Pull request, код-ревью и стратегии ветвления
Как оформить pull request, который быстро проверят, как ревьюить по существу, чем trunk-based отличается от GitFlow и что делает CI/CD.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.