Atomic Flow: дисциплина Git в критических проектах
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
Git - это инструмент, на который полагаются большинство разработчиков, будь то работа или личные проекты. При этом, Git является много большим, чем просто способом синхронизации локальных и удалённых изменений. Он представляет собой целый образ мышления, который служит основой для рабочих процессов проекта и направляет его развитие.
В основе Git лежат ключевые концепции, такие как коммиты, история изменений, ветвление, rebase и merge. И хотя Git богат и на другие возможности, именно вышеперечисленные (субъективно) составляют его суть. Неправильное их использование способно привести к значительным потерям качества кода и времени людей, тогда как альтернативные подходы упрощают разработку на всех уровнях и приносят пользу сообществу проекта (если оно есть).
В этом докладе я поделюсь собственным опытом о том, как применение этих опорных концепций в реальных проектах может заметно ускорить и упростить разработку, особенно в критически важных системах. Я расскажу о следующих темах с примерами из своей работы, как в открытых, так и в закрытых проектах:
- Важность «атомарности» коммитов и что это значит.
- Цена и выгода поддержания чистой истории коммитов.
- Как мульти-коммитные патчи могут ускорить разработку и ревью кода.
- Использование rebease как метода создания патчей.
- Merge-Commits vs Fast-Forward.
Все это упаковано в метод работы с Git-ом, который я назвал Atomic Flow.
Многие команды придерживаются строгих правил работы с Git, вращающихся вокруг перечисленных тем, и это очень даже оправдано. Я работал в проектах, которые использовали потенциал Git с самого начала, а также в тех, которые поначалу игнорировали все кроме commit + merge, но позже расширили использование Git-а и заметно выиграли. Моя цель - помочь большему числу команд повысить эффективность, узнать практики Git получше, особенно если их проекты зависят от безупречного качества кода и лёгкости его сопровождения.
Старший разработчик в двух компаниях: Virtual Minds GmbH и Tarantool от VK Tech. Ex-Ubisoft. В разработке с 2014 года, высоконагруженные критические системы: базы данных, крупные игры, рекламные технологии. Регулярный ежегодный докладчик на крупных конференциях. Читаю курс лекций по системному программированию.
Видео
Другие доклады секции
Доклады вне привычной рамки