View in Telegram
Давайте вспомним две самые популярные на сегодняшний день branching model. • Gitflow Trunk Based Development (TBD) Когда-то очень давно я старался придерживаться модели Gitflow и строить процесс разработки и управления кодом вокруг этой модели. Со всё большим погружением в философию DevOps и в практики Continuous Integration, Continuous Delivery и её подвида Continuous Deployment всё чаще складывалось ощущение, что что-то не так. Почему так неудобно? Зачем эти страдания при решении мерж-конфликтов? Почему ветки такие гигантские и их так сложно ревьюить? В какой-то момент я познакомился с моделью TBD и для меня это был некий сдвиг парадигмы и скачок в развитии. TBD - это не просто branching model, это ещё и ряд практик, техник и подходов к разработке. Не хочу перечислять все достоинства и пересказывать всю крутость TBD. Вы можете прочитать про это в документации по ссылке выше. Но я хочу упомянуть одну из практик в TBD, которая часто является самой сложной в осознании и применении. Эта практика называется "Branch by abstraction" и картинка этого поста посвящена ей. Идея в том, чтобы не делать одну гигантскую ветку на всю фичу и вместо этого делать много маленьких веток, каждая из которых содержит очередной маленький шажок в реализации фичи. Такой подход, очевидно, не решает вообще всех проблем. У нас точно всё ещё останутся какие-нибудь миграции на новые версии библиотек, у которых изменились SDK/API/сигнатуры методов. У инженеров, которые впервые слышат про этот подход, часто появляется куча противоречий в голове. Как я могу себе позволить мержить в мастер кусок недоделанной фичи? А что если я кого-то сломаю? И так далее. Очевидно, что автоматизированное тестирование и feature flags решают эту проблему. Если вы не слышали или ещё не используете TBD, то крайне рекомендую начать погружение как можно раньше. #picture #link #thought
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily