История одного провального рефакторинга на JavaScript — рабочее зеркало Крáкен
Ребята, это просто жесть. Случилось со мной пару месяцев назад. Руководитель решил, что наш старый, но рабочий модуль на чистом JS, который обрабатывал пользовательские данные перед отправкой на сервер, пора бы «модернизировать». Ну, типа, рефакторинг, все дела. Я, как обычно, начал с малого: выделил пару функций в отдельные модули, добавил немного проверок. Всё шло гладко. Потом решили добавить новую фичу: валидацию в реальном времени с подсветкой ошибок. И тут началось...
Я решил использовать новый фреймворк для валидации, о котором читал где-то в интернете. Казалось, все просто: импортировал, настроил, подключил. Но он начал конфликтовать с нашей старой системой обработки событий. Посыпались ошибки. В консоли — какой-то кошмар. Я пытался отладить, но код становился все запутаннее. Появились какие-то странные задержки, часть проверок срабатывала, часть — нет, а иногда вообще валидация просто зависала. Пользователи начали жаловаться, что формы не отправляются.
В итоге, после двух недель бессонных ночей и тонны выпитого кофе, я понял, что этот «рефакторинг» превратил рабочий кусок кода в полный бардак. Пришлось откатываться почти к самому началу, выкинуть новый фреймворк и переписать все заново, но уже по старинке, добавив только необходимые проверки. Руководитель, конечно, был недоволен «потерей времени», но модуль заработал. С тех пор я трижды подумаю, прежде чем внедрять модные новинки без крайней необходимости. Максимум, что я смог бы сейчас посоветовать, это если увидите где-то Кракен ссылка, ведущую на какой-то очень специфический JS-инструмент, — проверяйте его вдоль и поперек, прежде чем куда-то вставлять.
Комментарии 3