GIT поэма
В день рождения «солнца русской поэзии» представим, как выглядела бы его его сегодняшняя жизнь: система контроля версий стихов, цензор Бенкендорф как проджект-менеджер и горящие дедлайны.
Пушкин сидит, пишет стихи. Прибегает Бенкендорф.
— Слушай, Пушкин, у нас все сроки горят! Надо релизиться. Инвесторы спрашивают: где контент?
— Не, ну я так не могу! Бенкендорф, я тебе сколько раз говорил, что я так не могу.
— Александр! От меня требуют, я ничего поделать не могу. Давай релизиться. Что у тебя там?
— Вот…
Пушкин показывает две строфы и начало третьей.
Я помню чудное виденье:
Передо мной явилась ты,
Как мимолетное мгновенье,
Как гений белой красоты.
В томленьях грусти безнадежной
В тревогах шумной суеты,
Звучал мне долго голос снежный
И снились милые черты.
Та-та-та. Бурь призыв сермяжный
Рассеял прежние мечты,
Тра-та-та-та нежный
Пурум-пум-пум черты.
— Замечательно! Выкладывай в проду первые две строфы.
— Но…
— Потом все «но». Нам надо показать контент!
Убегает.
Пушкин вздыхает, вырезает незаконченную строфу, делает git init, git add poem.txt, git commit и git push на сервер. Возвращает последнюю строфу и задумчиво смотрит вдаль, крутя гусиное перо в руках… Минут через 10 к нему приходит мысль, он откладывает перо и начинает стучать по клавишам.
***
Через полчаса есть прогресс по третьей строфе.
Тара-та. Бурь призыв сермяжный
Рассеял прежние мечты,
Тра-та-та та-та нежный
И снились добрые черты.
Пушкин встает и идет налить себе кофе. В коридоре он натыкается на спешащего Бенкендорфа.
— Пушкин, что ты творишь! Там баги на продакшне!
— Да ладно! Баги? У меня? Не может быть.
— Сам посмотри.
Бенкендорф открывает ноут, показывает Пушкину что-то. Пушкин запускает руку в шевелюру и задумчиво ее чешет.
— Да, точняк, смотри ты… Но у меня счас в коде все недоделано… Я только начал думать о четвертой строфе… есть пара мыслишек, но не факт, что быстро имплементируется…
— Надо срочно пофиксить!
Бенкендорф убегает. Пушкин, забыв о кофе, идет к рабочему месту. Там делает git stash, правит «снежный» на «нежный», git commit, git push, git stash pop. Задумчиво смотрит на пустую кружку. Потом на потолок. В глазах у него — попытка сосредоточиться. Минут через пять ему это удается, и он начинает стучать по клавишам.
***
Через полчаса прибегает Бенкендорф. В руках у него ноут и бигмак, он жует на ходу.
На экране Пушкина недоделанная работа:
Шли годы. Бурь призыв сермяжный
Рассеял прежние мечты,
И я забыл твой голос нежный,
И снились добрые черты.
В глуши, во мраке трам-та-та-там
Тянулись тихо дни мои
Без трам-та-там, без пам-па-ра-рам,
Без слез, без жизни, без та-там.
— Слушай, Пушкин! Тут инвесторы посмотрели контент, все хорошо, но нужны копирайты и название.
Пушкин в сторону:
— Мля…
Бенкендорф, жуя бигмак, таращит глаза.
— Ну, Пушкин, ну, в последний раз! Чтоб мне сдохнуть!
Пушкин вздыхает, опять делает git stash, добавляет строку копирайта. Немного подумав, называет стихотворение «К***».
— Потом придумаю!… — шепчет он себе под нос.
Git commit, git push. Бенкендорф все это время стоит сзади и сосредоточенно жует бигмак.
Пушкин:
— Сделал, видишь! Так устраивает? Правок больше не будет? Дайте поработать спокойно!
— Не будет, чтоб мне провалиться на этом месте! — заверяет Бенкендорф. — Спасибо, я твой должник! — и убегает, роняя крошки.
Пушкин смотрит в монитор.
— Чтоб тебе пусто было, манагер эффективный!
Он делает git branch develop, git stash pop, git commit. Глянув на пустую кружку, надевает наушники и минут 10 сидит, качая головой в такт музыке. Потом начинает ожесточенно стучать по клавиатуре.
***
Через полчаса прибегает Бенкендорф. В руках у него какая-то распечатка. На экране ноута Пушкина муки творчества:
В глуши, во мраке трам-та-та-там
Тянулись тихо дни мои
Без трам-та-там, без сожаления,
Без слез, без жизни, без любви.
Бенкендорф приподнимает наушники с головы Пушкина.
— Пушкин, слушай! Все хорошо, всё всем нравится, но инвесторы, сам понимаешь… Короче, первая строфа не катит.
— Что?! — Пушкин срывает наушники и разворачивается к Бенкендорфу.
— Ну, не очень… Говорят, неудобно читать, «мимолетное мгновенье» как-то глаз режет… Можешь переделать? С меня пузырь!
— Ну как я это переделаю? Как? У меня весь код в разобранном состоянии, тесты не проходят вообще!
— Ну, миленький, ну, придумай что-нить!
Пушкин делает git commit, git checkout master, задумчиво ковыряет пером в ухе, потом меняет местами «виденье» и «мгновенье».
— Так пойдет?
— Во! То что нужно, ништяк, релизь! — Бенкендорф убегает.
Пушкин провожает его недобрым взглядом, делает git commit, git push, git checkout develop. Водит пером над незакоммиченными изменениями, задумчиво постукивает по пустой кружке из-под кофе. Минут через десять его осеняет, он берется за клавиатуру.
***
Через полчаса прибегает Бенкендорф. Он молча подходит к Пушкину и останавливается.
— Что опять? — Пушкин откладывает перо и нервно стучит пальцами по столу.
— Да ничего, просто пришел посмотреть: готова ли новая версия?
Пушкин закатывает глаза и протяжно вздыхает. На экране кипит работа:
В глуши, во мраке заточенья
Тянулись тихо дни мои
Без божества, без вдохновенья,
Без слез, без злобы, без любви.
Душе настало пум-пурум-пум:
И вот опять явилась ты,
Как пум-пурам-пам виденье,
Как трам-тарам-там-там парам.
— Ну, как сказать… — Пушкин теребит перо. — Есть пара строк, вроде ничего… Ну и пятая строфа вроде наклевывается… надо продумать связку с другими компонентами, потому что…
— Отлично! — перебивает его Бенкендорф — Можешь на проду выкатить? Инвесторам понравилось, хотят еще транш нам дать, но просят показать прогресс, понимаешь?
— Нет.
— Слушай, чувак, они нам деньги платят, понимаешь. Мы тут не просто так сидим, не ради собственного удовольствия. Денег не будет — разгонят всех к чертям собачьим. Не попишешь свои стишата тогда. Выкатывай, надо прогресс светить. И да, бага опять есть — вот тут запятой не хватает.
— Как вы все меня! — Пушкин надевает наушники и демонстративно молча смотрит в моник. Бенкендорф похлопывает его по плечу и уходит.
Пушкин вырезает недоделанную строфу, делает git commit, возвращает строфу, делает git stash, git checkout master, правит запятую, git commit, делает git merge develop, git push, git checkout develop, git stash pop. Вздыхает, берет кружку и идет за кофе.
***
Через полчаса — Пушкин в наушниках за компом — прибегает Бенкендорф. Пушкин делает вид, что его не замечает.
Душе настало пробужденье:
И вот опять явилась ты,
Как мимолетное виденье,
Как гений чистой красоты.
И сердце бьется тум-турум-тум,
И для него там пам-парам
И там-тарам, и пум-пурум-пум,
И жизнь, и слезы, и любовь.
Бенкендорф внаглую подходит к Пушкину и кладет на стол распечатку.
— Вот. Пришел фидбек от заказчика. Нужны правки.
Пушкин тоскливо смотрит на лист, на котором много букв и смайлики в конце. Снимает наушники.
— Вот этого я вообще не понимаю. Зачем им другие эпитеты? Чем им эти не понравились? Я в шоке, бывают же на свете…
— Слушай, не умничай. За тебя уже все подумали. Меняешь эпитеты, и все довольны. Так надо, понимаешь? Я не могу тебе рассказать всей кухни, но генеральный взял это на контроль.
— Вот заразы, поработать не дают. — Пушкин допивает остатки кофе. — Хорошо, будут вам правки. Но без тестов! Я такую хрень даже тестировать не буду.
— Вот и чудненько, договорились! — Бенкендорф убегает.
Пушкин делает git commit, git checkout master, пододвигает лист с правками, правит код, иногда возводя глаза в потолок и что-то шепча себе под нос, потом git commit, git push, git checkout develop. Сжав зубы, нервно правит текст, коммитит, постоянно что-то бормоча себе под нос.
***
Через три часа Пушкин откидывается на спинку стула. Глаза его красны, волосы взъерошены. На экране готовое стихотворение. Пушкин любовно его осматривает, добавляет пару пробелов в одном месте и удаляет в другом. Git commit. Оглядывается: за окном уже ночь. Берет телефон, набирает номер.
— Бенкендорф! Да, это я, привет. Готово… Что значит спишь? Просыпайся давай!… Скажи, могу я зарелизить?… Ну, я не знаю, инвесторы с заказчиками играют в покер на нашем сайте, маркетологи запустили рекламу, и куча пользователей жаждут отдать нам свои деньги… Нет? Отлично! Тогда я выкладываю на проду… Да, отвечаю… Да, ничего не случится!… Да, под мою ответственность… Да, договорились… Адью!
Пушкин делает git checkout master, git merge develop, git push. Откидывается на спинку кресла. За окном шумит ночной город. Пушкин потягивается с хрустом и встает. Он кладет в рюкзак перо и наушники, надевает шапку-растаманку на свои непослушные волосы, выходит из комнаты. В офисе гаснет свет, все погружается в полутень, и только экран светится. На нем видно дерево коммитов и прекрасное стихотворение.
К***
Я помню чудное мгновенье:
Передо мной явилась ты,
Как мимолетное виденье,
Как гений чистой красоты.
В томленьях грусти безнадежной,
В тревогах шумной суеты
Звучал мне долго голос нежный
И снились милые черты.
Шли годы. Бурь порыв мятежный
Рассеял прежние мечты,
И я забыл твой голос нежный,
Твои небесные черты.
В глуши, во мраке заточенья
Тянулись тихо дни мои
Без божества, без вдохновенья,
Без слез, без жизни, без любви.
Душе настало пробужденье:
И вот опять явилась ты,
Как мимолетное виденье,
Как гений чистой красоты.
И сердце бьется в упоенье,
И для него воскресли вновь
И божество, и вдохновенье,
И жизнь, и слезы, и любовь.
1825 год
goo.gl/P8iuog
Текст появился в процессе подготовки онлайн-курса «Python с нуля». Автор размышлял как простым языком, без программирования, рассказать про ветвление в GIT и зачем оно нужно. Потом досняли видео-скринкасты и наложили музыку Фредерика Шопена. Все события и персонажи вымышлены, любые совпадения случайны.