Trunk Based Development

Продвинутый Git

Amanda Crawford-Adamo

Software and Data Engineer

Что такое Trunk Based Development?

  • Модель CI/CD с ветвлением в системе контроля версий
  • Разработчики больше не отправляют изменения в отдельные ветки релизов
  • Изменения поступают из краткосрочных веток и сливаются в main
  • Небольшие и частые обновления

График коммитов в ветку main с отображением ветки как trunk для релизов

Продвинутый Git

Основные принципы Trunk Based Development

  1. Частые коммиты в main
  2. Краткосрочные ветки функций (< 1 дня)
  3. Непрерывная интеграция
  4. Флаги функций для незавершённых задач

Схема рабочего процесса Trunk Based Development. Краткосрочная ветка включает переключатель флага функции при слиянии в main.

Продвинутый Git

Флаги функций в TBD

  • Управление незавершёнными функциями
  • Пользователи не затронуты изменениями
  • Постепенный выпуск функций

Пример кода с флагом функции

  if feature_flag_enabled('new_feature'):
      # New feature code
  else:
      # Old feature code
Продвинутый Git

Непрерывная интеграция в TBD

  • Коммиты в main запускают автоматическую сборку и тесты
  • Меньше задач по сопровождению и более быстрые релизы
  • Продукт всегда надёжен и стабилен
  • Безопасный код и соответствие отраслевым стандартам
  • Высокое качество кода и снижение риска ошибок
Продвинутый Git

Преимущества и сложности TBD

Преимущества:

  • Меньше конфликтов слияния
  • Более быстрые циклы релизов
  • Улучшенное качество кода
  • Эффективное сотрудничество

Сложности:

  • Требует дисциплины команды
  • Необходимо надёжное тестирование
  • Порог вхождения
  • Управление незавершёнными функциями
Продвинутый Git

Лучшие практики

  1. Фиксируйте небольшие изменения как можно чаще
  2. Автоматизируйте тестирование и развёртывание
  3. Используйте флаги функций для незавершённых задач
  4. Регулярно проводите код-ревью
  5. Отслеживайте состояние системы после развёртывания
Продвинутый Git

Давайте потренируемся!

Продвинутый Git

Preparing Video For Download...