Инженерная практика
Trunk-based: свободное припоминание
Припоминание сильнее перечитывания. На каждый промпт проговорите или запишите полный ответ по памяти, прежде чем открыть модельный — именно усилие припоминания закрепляет материал.
Восстановите стержень юнита — почему дрейф задаёт стоимость merge, что конкретно означает short-lived, как флаги отделяют deploy от release, почему зелёный гейт обязателен, branch by abstraction и очистку flag debt — не подглядывая в уроки.
- 01Почему стоимость merge — функция дрейфа, а не размера диффа, и какой единственный рычаг её снижает?
- 02Что конкретно задаёт «short-lived branch» и где граница между trunk-based и процессом с долгоживущими ветками?
- 03Почему отделение deploy от release — именно то, что заставляет trunk-based работать для многонедельных фич, и что даёт флаг помимо сокрытия работы?
- 04Почему trunk-based неотделим от быстрого блокирующего CI-гейта и что ломается, если гейт медленный?
- 05Как merge queue устраняет гонку, которую имеет наивный pre-merge гейт на масштабе, и каковы его пределы?
- 06Объясните «trunk-based меняет branch debt на flag debt» и почему сделка выгодна только с дисциплиной очистки.
Если вы смогли восстановить каждый ответ по памяти, вы держите стержень юнита: дрейф задаёт стоимость merge, поэтому ежедневная интеграция её ограничивает; short-lived означает три или меньше веток, исчезающих за день, и граница — это время жизни, а не существование веток или PR; флаги отделяют deploy от release, так что незавершённая работа едет на trunk dark, а вы получаете dark launch, прогрессивное раскрытие и kill switch; быстрый блокирующий зелёный гейт делает общий trunk безопасным, а merge queue держит его зелёным на масштабе в пределах своих ограничений; и очистка — удалить ветку при merge, флаг при раскатке — это дисциплина, не дающая branch debt вернуться как 2^N flag debt.