awesome-everything EN
↑ Обратно к восхождению

Инженерная практика

Trunk-based: тест с множественным выбором

Суть Синтез юнита в формате множественного выбора — дрейф, short-lived branch, feature flag, зелёный CI-гейт, merge queue на масштабе и flag debt.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов сквозь весь юнит. Каждый отражает решение, которое вы принимаете в реальном споре о процессе, — это не определение для пересказа, а компромисс, который нужно защитить, когда кто-то говорит «trunk-based не масштабируется».

Цель

Убедитесь, что связываете стержень юнита: дрейф задаёт стоимость merge, short-lived branch её ограничивают, флаги отделяют deploy от release, зелёный CI-гейт делает общий trunk безопасным, merge queue держит его на масштабе, а очистка — то, что делает всю сделку выгодной.

Викторина

Один инженер вливает фичу на 2000 строк в тот же час, когда форкнулся; другой вливает правку на 50 строк из трёхнедельной ветки. Какой merge дороже и почему?

Викторина

Команда прочитала «trunk-based development», отключила branch protection и коммитит прямо в main. Через неделю trunk красный дважды в день, а ещё утёк секрет. В чём была настоящая ошибка?

Викторина

Инженер настаивает, что не может вливаться ежедневно: переписывание checkout не готово, «нельзя положить половину флоу в trunk». Что снимает возражение?

Викторина

Нужно заменить ORM в непрерывно деплоящемся сервисе; миграция займёт шесть недель. Как сделать это по trunk-based?

Викторина

При 50 PR/день на одном trunk каждый PR зелёный до merge, но trunk всё равно ломается несколько раз в неделю. Какое решение верное?

Викторина

Через два года у trunk-based команды 400 флагов, флаг «new checkout» на 100% уже год со старым путём в else, и инцидент от двух флагов, чью комбинацию никто не пробовал. В чём корень провала?

Итог

Стержень юнита — единая дисциплинированная система, а не трюк с ветками. Дрейф задаёт стоимость merge, поэтому short-lived branch (три или меньше, исчезают за день) её ограничивают; feature flag отделяют deploy от release, так что незавершённая работа едет в trunk dark, а большие рефакторинги используют branch by abstraction; быстрый блокирующий зелёный гейт делает общий trunk безопасным, а merge queue держит его зелёным на масштабе; и очистка — удалить ветку при merge, флаг при полной раскатке — не даёт branch debt вернуться как 2^N flag debt. Внедрите одну модель веток — получите режимы отказа; внедрите всю систему — и цифры DORA приходят следом.

Продолжить восхождение ↑Trunk-based: свободное припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.