Trunk-based Development: основные понятия и основы использования | OTUS

Курсы

Программирование
Подготовка к сертификации Oracle Java Programmer (OCAJP) Алгоритмы и структуры данных
-12%
Backend-разработчик на PHP
-8%
Web-разработчик на Python
-11%
Архитектура и шаблоны проектирования
-14%
Framework Laravel
-13%
iOS Developer. Basic
-23%
Разработчик на Spring Framework
-23%
Python Developer. Basic
-16%
C# ASP.NET Core разработчик
-18%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Highload Architect
-9%
JavaScript Developer. Basic
-8%
Backend-разработка на Kotlin
-10%
JavaScript Developer. Professional
-9%
Android Developer. Basic
-10%
Unity Game Developer. Basic Программист С MS SQL Server Developer Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Vue.js разработчик VOIP инженер Программист 1С Flutter Mobile Developer Супер - интенсив по Kubernetes Advanced Fullstack JavaScript developer
Инфраструктура
PostgreSQL
-10%
Administrator Linux. Professional
-11%
Базы данных
-19%
Administrator Linux.Basic
-18%
Супер-интенсив «СУБД в высоконагруженных системах»
-18%
IoT-разработчик
-12%
Супер-интенсив "SQL для анализа данных"
-16%
Highload Architect
-9%
MS SQL Server Developer Безопасность Linux Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Администратор Linux. Виртуализация и кластеризация Infrastructure as a code in Ansible Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Trunk-based Development

DevOps_Deep_11-5020-1f219d.09_site.png

В процессе разработки кода программистам не обойтись без инструмента по версионности и контролю изменений. Одна из наиболее известных и популярных систем контроля версий — git (изменение кода можно зафиксировать и у этого изменения будет специальная метка). В результате вся история процесса разработки видна программистам, что очень удобно.

Однако когда команда ведёт работу над одним и тем же кодом, рекомендовано придерживаться следующих правил: - «не ломать» текущий рабочий код; - не мешать друг другу, работая в одной ветке.

Для решения проблем взаимодействия разработчиков друг с другом в git есть различные подходы, например, git-flow. Работа с ветками является одной из основных в git-flow и это один из главных его недостатков. Постоянные merge и конфликты при слиянии, а также сама суть в долгосрочных ветках могут сыграть злую шутку против разработчиков. И если говорить об итеративной разработке, то при больших промежутках времени между релизами с git-flow можно подружиться, но когда речь идёт о более частых релизах, всё становится гораздо сложнее.

В данной ситуации предпочтительнее выглядит Trunk-based Development — подход, который сегодня широко используется такими крупными компаниями, как Google и Facebook. Он также основан на ветвлении, однако второстепенные ветки имеют короткий срок жизни: от нескольких часов до нескольких дней. Из этого нюанса и вытекает концептуальная идея Trunk-based Development, которая заключается в том, что в конце работы с кодом в рамках временной ветки все изменения так или иначе должны попасть в основную master-ветвь.

Кроме того: - есть требования к контролю качества кода (в master-ветку попадает уже протестированный рабочий код, что повышает его стабильность, детали — здесь); - все релизы делаются только из master-ветки.

При этом взаимодействие между разработчиками в рамках временной ветки — вполне нормальное явление (можно делать brunch нашей задачи, получать комментарии, выполнять изменения и дополнения, возвращать исправленные фрагменты кода в мастер-ветку). Trunk_based_Development-20219-d5f4d3.png Вот, пожалуй, и всё на сегодня. Если хотите получить более глубокие знания по инструментам синхронизации, записывайтесь на курсы OTUS по DevOps!

Интересуют нюансы работы Trunk-based Development? Задавайте вопросы в комментариях!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
1 комментарий
0

Мой совет всем, кто будет читать эту статью: смотрите оригинал - https://trunkbaseddevelopment.com/5-min-overview/ (и в целом весь сайт - https://trunkbaseddevelopment.com )
PS: неотображающиеся ссылки и окно редактирования комментария - это тихий ужас :( PPS: и пропадающие переносы строк - тоже :(

Для комментирования необходимо авторизоваться