Найти в Дзене

Подвиг №2. Как Геракл победил "Гидру"

Геракл не любил задачи с припиской «просто подправить». Когда тебе говорят: «Просто добавь фильтр по возрасту», знай — за этим стоит полная перезапись бэка, увольнение троих и 200 строк кода, из которых 190 — мольба о пощаде. Мы тогда работали в фирме с говорящим названием ООО «Синергия Плюс». Где плюсом была только температура в серверной. Остальное минусовало самооценку. Я был младшим разработчиком. А Гера — ну, он был неформально старший по всему: кофе, словам «я щас», и умению разрулить баг, который кричал caps-lock’ом в ночной чат поддержки. Его даже руководитель называл «наш лысый PowerPoint». Не потому, что Гера был лысым — он просто так бликовал от офисного света, особенно после трёх ночей без сна. Как презентация, только ходячая. Однажды к нам пришёл заказ. Прям из головы Зевса, то есть от главбуха: — Надо обновить клиентскую систему учёта. Она у нас с 2013 года работает, как швейцарские часы, если бы эти часы собирали первокурсники на курсе «Слепой тыквы». Система называлась
Оглавление

Геракл не любил задачи с припиской «просто подправить». Когда тебе говорят: «Просто добавь фильтр по возрасту», знай — за этим стоит полная перезапись бэка, увольнение троих и 200 строк кода, из которых 190 — мольба о пощаде.

Мы тогда работали в фирме с говорящим названием ООО «Синергия Плюс». Где плюсом была только температура в серверной. Остальное минусовало самооценку.

Я был младшим разработчиком. А Гера — ну, он был неформально старший по всему: кофе, словам «я щас», и умению разрулить баг, который кричал caps-lock’ом в ночной чат поддержки. Его даже руководитель называл «наш лысый PowerPoint». Не потому, что Гера был лысым — он просто так бликовал от офисного света, особенно после трёх ночей без сна. Как презентация, только ходячая.

Однажды к нам пришёл заказ. Прям из головы Зевса, то есть от главбуха:

— Надо обновить клиентскую систему учёта. Она у нас с 2013 года работает, как швейцарские часы, если бы эти часы собирали первокурсники на курсе «Слепой тыквы».

Система называлась «ГИДРА». Серьёзно. Это была аббревиатура, но никто уже не помнил от чего. По слухам: «Гибкий Инструмент для Динамического Ретро-Архива», хотя лично я думал, что это просто «Гадость Информационная, Дико Разрастающаяся Анонимно».

Её интерфейс выглядел так, будто его проектировали в «Paint», по памяти, под давлением.

— Это же не код, это крик боли, — шептал я, глядя в структуру таблиц.

— Не бойся, — сказал Гера и кивнул, как Данила Мастер, только с кругами под глазами. — Это просто много голов. Уберём одну — полезет ещё две. Знакомо. Ничего, я готов.

Как всё пошло по JSON'у

Первый баг был на входе: система не пускала пользователей, если в логине была буква «Ы». Гера вскрыл модуль авторизации, починил, залил — и… вылезла ошибка: теперь при входе с «Ы» пользователю начислялось двойное премиальное начисление, даже если он был уволен.

Каждый день он отрубал по багу. И каждый день их становилось больше. Он чинит сортировку отчётов — пропадают данные по клиентам. Возвращает данные — отчёты начинают выгружаться в Word, но с русскими словами, написанными по диагонали. Убирает диагональ — и система начинает свою жизнь.

— Это не баги, — шептал Гера. — Это структура мышления бывшего тимлида. Он её вылепил из своей боли.

На третий день Геру вызвала Марина из HR. Та самая, у которой на столе фикус и блокнот с надписью "Позитив — это тоже KPI".

— Гер, слушай… мы заметили, что ты работаешь ночами. У нас же политика work-life balance.

— Я просто не успеваю чинить её днём. Она плодится.

— Кто?

— Гидра.

— Это баг?

— Это всё.

Марина записала что-то в блокнот, кивнула, как будто поняла, и на всякий случай отменила корпоратив. Просто чтобы не дразнить судьбу.

Когда снится JSON

Ночью я проснулся от того, что он разговаривал во сне. Глухо, почти шёпотом:

— …не надо вложенных массивов… откуда ты знаешь мои переменные… отстань, мать твою, я не подписывал SLA…

А у него открыт ноут, экран светится странным синим цветом, и в терминале мигает строка:

{ "головы": [ "ошибка авторизации", "потеря данных", "невозможно выйти из системы" ] }

Я поклялся никогда не использовать eval().

-2

А однажды в логах мы нашли сообщение:

«Я была создана из хаоса. Я и есть порядок. Гера, уходи. Ты не понимаешь, с чем связался.»

Я бы на его месте испугался. Но он только сделал глоток энергетика и сказал:

— Пора закапывать.

Что делает Геракл, когда с чудовищем нельзя договориться?

Он не спорит, не объясняет, не зовёт HR. Он переписывает всё с нуля.

Без аббревиатур. Без костылей на jQuery. Без «а Вася говорил, что так лучше».

Три ночи он сидел, пока мы с другими джунами разогревали ему суп из кулера и варили лапшу на MacBook Air.

И вот — система заработала. Простая. Честная. Она называлась «Просто учёт». Без дизайна. Без амбиций. Зато работала.

— А как же Гидра? — спросил я, когда увидел, что старая система больше не пыхтит в фоновом режиме.

— Я её не убил, — сказал он, втыкая флешку с архивом в системник. — Я закопал. Глубоко. Под паролем, который знает только Бог и, возможно, наш DevOps, но он в отпуске.

С тех пор в офисе стало тише. Багов стало меньше. А у нас появился миф.

Легенда о человеке, который победил Гидру. Не в подвале. А в системе учёта.

С теплом, @bugfix_парамедик, тот, что видел Геру в бою и больше никогда не верит в "просто поправить отчёт".