Если вы никогда не костылили, то вы не программист.
У меня есть проект Radio Hustle и SPA app.radio-hustle.com для него. Веб-приложение на реакте существует с тех времён, когда он ещё был с нулём в мажорной версии.
Проект пережил несколько итераций сложных миграций, тотальную смену архитектуры, сейчас переживает переход на микрофронтенд.
Когда я только начинал его писать, у меня было большое желание как можно быстрее выпустить его в прод, поэтому на качество кода я особо не смотрел.
Это был лихой 2016ый. Я написал на скорую руку виджет для поиска по людям и с тех пор почти не трогал его. Я знал, пишу адский костыль, что когда-то мне это аукнется. Знал и забыл.
Аукнулось сегодня. Точнее неизвестно когда, но сегодня один небезразличный пользователь написал мне в вк, приложив скринкаст и описание воспроизведение бага (Новзур, если ты читаешь это, спасибо тебе большое!).
Данные в виджет попадали из стора, в который, в свою очередь, они падали из отдельного запроса. Компонент в тупую брал данные оттуда, как только маунтился. Без проверок на их существование. Без инициализации значения по умолчанию в сторе. Без кучи ещё всего.
Запрос на протяжении многих лет работал за миллисекунды. За последние пару месяцев в тело запроса было добавлено кучу всего, что и привело к тому, что компонент рендерился быстрее, чем приходили данные.
Какая мораль?
Пишите нормально сразу, если есть возможность.
Если без костыля никак:
— отметьте себе костыль задачей в jira/trello/что-там-у-вас
— опишите причину костыля, возможное решение
— в коде оставьте TODO с ссылкой на таску
— расскажите коллегам, что вы насрали в код, пусть будут в курсе
— постарайтесь пофиксить костыль как только появится возможность.
… а то будете как я, который вместо прогулки по вечернему городу сидел и фиксил багу в ближайшей кафешке.
Добавить комментарий