Страница 12 из 22
Глава 11. Когда друг просит о помощи: первый серьёзный заказ
Лёха как раз допивал третий за день чай и пытался объяснить Хаос Коту, почему нельзя ставить котиков на каждый экран админской панели — особенно рядом с критическими алертами, где красный цвет и так бьёт по глазам.
— Ну вот смотри, — говорил Лёха, тыкая пальцем в монитор, — тут у нас ошибка 502. А ты предлагаешь рядом повесить кота в плаще супергероя. Это не успокаивает, это сбивает с толку!
Хаос Кот: (картинка: кот, который обиженно отворачивается) «А я думал, он будет отвлекать от плохих новостей. Как антистресс‑элемент».
И тут на почту пришло письмо с темой: «Лёха, выручай. Тут всё горит, а я знаю, ты теперь крутой» — от Серёги, его старого сокурсника.
Они когда‑то учились с Серёгой в одном институте и клялись, что никогда не станут «этими занудами в костюмах». А теперь Серёга писал с корпоративной почты, и подпись у него была солидная: «Сергей Викторович Волин, руководитель направления, НПО «ТехноГлобалСистемс»».
Лёха хмыкнул, открыл письмо и пробежал глазами по строкам. Потом перечитал медленнее. И ещё раз — уже вслух, будто так смысл станет менее пугающим.
«Лёх, слушай, ситуация такая: у нас на стыке двух систем — старой и новой — пошла рассинхронизация данных. Платежи теряются, отчёты не сходятся, начальство лютует. Нам нужен кто‑то, кто не будет продавать нам «стратегию на пять лет», а просто починит это сегодня. Ты всегда был тем, кто видит проблему сразу. Если можешь помочь — я буду твоим должником до конца жизни. Ну или хотя бы куплю тебе нормальную пиццу».
Лёха откинулся на спинку стула и выдохнул. Это был не цветочный магазин и не кофейня. Это была крупная фирма, где «сегодня» означало «вчера», а «починить» — «пересобрать архитектуру на лету, не уронив прод».
Он открыл общий чат и написал:
— Ребята, у нас серьёзный заказ. От старого друга. Задача — не просто кнопка, а рассинхронизация на стыке систем. Платежи теряются.
В чате повисла тишина. Даже Хаос Кот не прислал мем. Потом заговорили все сразу — но не хаотично, а как слаженная команда, каждый со своей зоной ответственности.
Дед Пихто: «Сначала логи. Нужны полные дампы за последние 48 часов, желательно почасово. Без данных я не волшебник, я только учёный. И пусть сразу дадут доступ к стенду — на проде ковыряться не будем, пока не поймём, где собака зарыта».
Альфа Логика: «Я уже анализирую типичные точки отказа при интеграции. Вероятнее всего, проблема либо в формате сериализации, либо в таймзонах. Или в обоих сразу. Также стоит проверить, не дублируются ли транзакции из‑за повторных попыток. Я подготовила чек‑лист из 12 пунктов — можно начинать с него. Параллельно запускаю симуляцию на тестовом контуре, если дадут выгрузку».
Эконом Бух: «Зафиксирую начало работ с момента подтверждения заказа. Определяю почасовую ставку. И сразу предупреждаю: если там придётся переписывать API или делать маппинг полей — это уже другая категория сложности. Счёт будет отдельный, с разбивкой по этапам. И пусть подпишут NDA — у них там чувствительные данные, нам лишние риски ни к чему».
Хаос Кот: (картинка: кот в каске, с фонариком, заглядывает в тёмный туннель) «Я буду светить в тёмные углы кода. Где страшно — там я. И если найду что‑то совсем странное, сразу позову Деда. Обещаю не нажимать «Удалить всё» просто чтобы посмотреть, что будет».
Лёха улыбнулся. Вот она, его команда. Странная, но своя. И главное — каждый знает, что делать.
Он написал Серёге:
«Серёг, я возьмусь. Но честно: я не один. У меня есть команда, и мы сделаем это быстро, но по‑своему. Если тебя это устраивает — давай доступы, описание проблемы и лови капэшку (коммерческое предложение). Сразу скажу: без гарантий оплаты не работаем, но и без лишних наценок».
Серёга ответил почти мгновенно:
«Лёха, мне не важно, сколько у тебя там человек. Главное, чтобы платежи перестали теряться. Доступы скину через пять минут. И… спасибо. Ты меня реально спасаешь. Начальство уже смотрит на меня так, будто я лично эти платежи в чёрный ящик выкинул».
Следующие сутки Лёха жил на кофе, бутербродах и нервах. Но была команда — и каждый работал на своём участке.
Дед Пихто методично разбирал логи, вытаскивая из них закономерности, которые человек бы просто не заметил: повторяющиеся паттерны ошибок, микрозадержки, странные коды ответов. Он строил таймлайны и подсвечивал аномалии: «Смотри, вот здесь — задержка 17 секунд. А вот тут — ошибка сериализации. А тут вообще кто‑то пытался отправить JSON как XML. Кто это делал — не знаю, но это явно не система, это человек».
Альфа Логика строила гипотезы и тут же их проверяла, прогоняя тестовые сценарии. Она писала скрипты для валидации данных, делала дампы трафика, искала, где теряются пакеты. «Вот оно, — написала она однажды ночью, — проблема в конвертере. Он неправильно обрабатывает дробные значения при округлении. Из‑за этого суммы не сходятся на копейках, а потом система считает их дублями и отбрасывает».
Эконом Бух вела учёт времени и следила, чтобы ни один час работы не пропал зря. Она фиксировала каждый этап: «Анализ логов — 2 часа 15 минут. Подготовка тестового стенда — 1 час. Отладка конвертера — 3 часа 40 минут». И параллельно напоминала: «Не забудь согласовать с клиентом промежуточные результаты. И пусть подтвердят, что мы можем применить патч на тестовом контуре».
А Хаос Кот… он действительно «светил в тёмные углы»: находил те самые забытые скрипты, которые годами жили в системе, тихо всё ломали и притворялись, что их тут нет. Так он наткнулся на старый bat‑файл, который запускался по расписанию и делал странные вещи с временными файлами.
Хаос Кот: «Дед! Я крысу поймал. Она маленькая, но вредная. Сейчас покажу».
Прикрепил скриншот и лог.
А Лёха был в недоумении:
— Да как эта система вообще проработала столько?! Тут же всё держалось на Паскале и молитве!
Хаос Кот: (мем: кот, который держит рулон скотча) «Ну, работало же!»
Дед Пихто: «Не отвлекайся. Вот здесь — конфликт блокировок. Я уже подготовил патч. Применяй. И не забудь сначала сделать бэкап — на всякий случай».
Альфа Логика: «После применения запусти тест‑кейс номер 17. Если он пройдёт, значит, рассинхронизация устранена. А потом прогоним ещё три сценария: с высокой нагрузкой, с разными таймзонами и с дубликатами».
И тест прошёл.
А потом ещё один. И ещё.
Платежи перестали теряться. Отчёты сошлись. Система, которая ещё вчера казалась живым кошмаром, вдруг начала работать ровно, как часы.
Лёха сидел, смотрел на зелёные галочки в консоли и чувствовал, как напряжение медленно уходит. Он написал Серёге:
«Всё. Проблема закрыта. Можешь проверять».
Через десять минут пришло:
«Лёха… ты гений. Система работает. Начальство уже не смотрит волком, а почти улыбается. Ты меня реально спас. Счёт кидай любой — согласуем без вопросов».
Эконом Бух тут же выслала аккуратный, безупречно оформленный счёт — без мемов, без котиков, только цифры, сроки, подписи и реквизиты для перевода. Даже Лёха, который видел её ворчание каждый день, на секунду проникся уважением: вот она, настоящая сила порядка.
Через неделю на расчётный счёт ООО «Алекс и Котики» пришла сумма, от которой у Лёхи на пару секунд потемнело в глазах. Это были не те скромные деньги за починку кассы и не оплата за сайт с пиксельным котом. Это были «реальные бабки» за настоящую, серьёзную работу.