Рабочий лендинг, который вообще-то ждёт правок, Тёма сегодня тихо отодвигает в сторону. Его тянет назад к своей 2048 — той самой, что он сделал вчера. Ему хочется чтобы она сорвала настоящий «вау» в офисе. Он запускает её, гоняет пару ходов — и морщится. Голые цифры на плитках вдруг кажутся скучными. А что, если вместо чисел положить туда что-нибудь другое?
Можно из частей, например, собирать машины. Но для этого нужно рисовать картинки, а ему хочется результат побыстрее. А побыстрее - это значит использовать Emoji. Так, какие emoji у нас есть? Можно попробовать сделать что-то вроде эволюции: амеба превращается в рыбу, та в жабу, и т.д.
В голове у Темы возникает красивая картинка и он строчит Сане:
Замени в 2048 цифры на эволюцию: амёба → рыба → ящер → человек.
Саня опять отшучивается:
— Если бы за каждую задачу без ТЗ мне платили бы доллар, я бы уже давно был миллионером.
Тёма вздыхает и идёт к Лёхе:
— Лёха, напиши мне пожалуйста новое ТЗ для 2048. Хочу чтобы там вместо цифр была эволюция животных. В качестве картинок используй emoji.
— Сейчас сделаю, пишет Лёха и принимается за работу.
Интересно, думает Тёма. Как так получается что я Лёхе пишу более детальное ТЗ, чем Сане? Логично было бы наоборот... Но додумать он не успевает - Лёха уже написал готовое ТЗ.
— Саня, исправь, пожалуйста, 2048 согласно новому ТЗ, — Тёма сам не заметил, как начал воспринимать оба ИИ своими друзьями. "Умение говорить Спасибо и Пожалуйста в первую очередь говорит о хороших манерах" вспоминает он чье-то наставление. Не помнит чье, но полностью с ним согласен. Любую проблему можно решить словами.
Саня закончил работать и страница открылась в браузере сама. Тёма сливает две плитки — амёба превращается в рыбу, рыба в ящера, — и фыркает от удовольствия. Залипательно же.
— О, а давай ещё, — и понеслось. — Сделай вариант с растениями: росток, куст, дерево. — Готово. — Теперь машины: из ушастого жигулёнка собирается спорткар. — Готово.
Каждую он гоняет руками, ржёт, сравнивает. И ловит себя на странной мысли: раньше кайфом было играть. А сейчас он в саму игру толком и не играет — он их создает, одну за другой, и кайф сместился туда. Какая веселее, какая понятнее с первого взгляда, какая просто смешнее. Месяц назад он бы и одну такую не вытянул, а сейчас они вылетают из-под рук пачкой. Эволюция заходит лучше всех — на ней он и залипает.
1. Как теряют работу без истории версий
Есть поговорка, что "количество всегда переходит в качество". Но, только не сегодня. Варианты игры копятся, и каждую жалко потерять — вдруг именно эта версия была идеальной, а следующая правка её угробит. Тёма решает вопрос самым очевидным способом, какой приходит в голову: он копирует всю папку проекта целиком. Получилась удачная тема — скопировал, отложил, полез делать следующую.
Сначала это даже кажется разумным. Одна тема — одна папка. Вторая — ещё одна. Потом папка 2048-final. Потом, когда поверх final он накрутил ещё, появляется 2048-final2. А когда и это оказалось не последней, рождается шедевр — 2048-final-точно-последний. ИИ работает быстро, поэтому папки плодятся как грибы после дождя.
Через час Тёма понимает, что дальше так продолжаться не может. На экране — десяток почти одинаковых директорий с названиями одно нелепее другого, и он уже сам не помнит, где что живёт. Открывает final2, думая, что там свежее, — а там старьё. Запускает точно-последний — а там, наоборот, недоделка, которую он бросил на полпути. Он начинает запускать их по очереди, чтобы на глаз понять, где самая живая версия, — и быстро путается ещё сильнее.
В какой-то момент он ловит себя на том, что десять минут потратил не на игру, а на археологию собственных папок. И это уже обидно до злости: он же копировал их ради безопасности, чтобы ничего не потерять. А по факту — потерял ориентацию. Стал путаться сильнее, чем если бы вообще ничего не сохранял. Раньше была одна папка, и в ней — пусть одна, но понятная версия. Теперь десять, и ни одной понятной.
Мимо проходит Олег. Глаз цепляется за экран, за этот частокол final, final2, точно-последний — и Олег фыркает. Но смеётся он не зло, не «ну ты и салага». Смеётся тем особым смехом, в котором узнавание сильнее подкола.
— О, узнаю, — говорит он. — У меня так диплом был. Диплом_финал, Диплом_финал_испр, Диплом_финал_испр2, Диплом_вот_этот. Знаешь, чем кончилось? Распечатал не ту версию. На защиту принёс черновик с опечатками, а чистовик остался лежать в финал_исправленный, до которого я не дошёл.
Тёма ржёт вместе с ним — громко, с явным облегчением, — а сам уже разворачивает услышанное в свою пользу: ага, дядь Олег-то взрослый, реально работает, мастер и всё такое. И наступил ровно на те же грабли, на которые Тёма наступает прямо сейчас. Значит, никакой он не криворукий новичок. Просто способ дурацкий — а способ это не он придумал. С него и спрос.
— Слушай, а так что, у всех так? — спрашивает он Олега в спину. — Не только у меня?
— У всех, кто папками сохраняется, — бросает тот через плечо. — Способ кривой. Об него спотыкается каждый.
И от этого «у всех» Тёме как-то даже легче — косяк перестал быть личным. Но легче — не значит, что отпустило. В зоопарке папок он жить больше не хочет, это он теперь знает твёрдо. А как иначе — пока нет.
И вот тут, на этом «а как иначе», его и подмывает написать. Не Лёхе — к Лёхе он ещё дойдёт, — а в чат с Артём2036, с будущим собой о своих косяках говорить вроде и не стыдно. В сердцах, как пишут своему, когда наворотил и злишься: слышь, я тут наплодил десяток папок final, сам в них утонул, теперь не вылезу. Подскажешь нормальный способ сохраняться, а?
Тёма аж фыркает: вот вечно он так — вместо ответа вопрос. Но раз спросили — он начинает отвечать, больше себе, чем в чат. Зачем папки. Ну как зачем — чтоб удачную версию не потерять. Чтоб была точка, к которой можно вернуться, если следующая правка всё угробит. Чтоб откатиться к моменту, когда было хорошо…
И на этом слове — «откатиться к моменту, когда было хорошо» — у него в голове само собой щёлкает. Да это же ровно то, что он делает в играх. Перед боссом сохранился, помер — загрузился, как не умирал. Сейв. Он не папки хотел плодить. Он хотел сейв для кода — а папками просто лепил его руками, криво, через одно место.
Он перечитывает, что сам нащупал, и ему даже смешно: старший ни одного дельного слова не сказал, только переспросил «зачем» — а Тёма за полминуты сам себе и диагноз поставил, и понял, что просить. Не «как раскладывать папки аккуратнее». А кнопку Save/Load, как в игре, только для кода.
С этим он и идёт к Лёхе. Не с нытьём про папки, а с готовым, заточенным вопросом.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ