Часть 2: Расплата и cпасение//
А кончилось всё вот как. Саня отключил телефон, чтобы не сойти с ума от дофигенного количества звонков. В офисе стояла гробовая тишина, только его клавиатура трещала. Он был один на один с монстром, которого сам же и разбудил.
Паника — это роскошь, которую он не мог себе позволить. Нужно было думать. Он начал откатывать свои изменения. Убрал ту самую переменную с цветом. Выложил обратно старый код. Перезагрузил сервер.
Ничего. Тот же белый экран. Проблема была глубже.
Саня понял, что эта ошибка — не из-за его изменения. Оно было просто спусковым крючком. Ошибка сидела в коде давно, просто каким-то чудом её никто не задевал. А его изменение цвета кнопки — это как последняя соломинка, сломавшая хребет верблюду. Система, и так висевшая на волоске, просто не выдержала.
Он полез в логи сервера. Горы текста, ничего не понятно. Час он их читал, глаза слипались. И тут он увидел её — строчку, которая повторялась раз за разом. Ошибка в каком-то файле с названием helper_legacy_final_v2_old.php. Том самом, который он всегда обходил стороной.
Оказалось, что та переменная с цветом кнопки была глобальной. И её использовала какая-то древняя, забытая всеми функция для отправки почты, которая, видимо, работала всё это время по чистой случайности. Поменяв переменную, он сломал эту функцию, а та, в свою очередь, валила весь сайт при попытке загрузить любую страницу.
Делать нечего. Саня нашел эту функцию. Она была написана так криво, что проще было её переписать с нуля. И он сел это делать. В два часа ночи, на кураже и последних силах, он написал новую, простую и понятную функцию для отправки писем. Заменил ею тот старый хлам. Выложил код на сервер, скрестил пальцы и нажал «Обновить».
Сайт ожил. Товары снова были на месте. Кнопка «Купить» была синей, как и раньше.
Утром в понедельник его вызвало начальство. Саня готовился к увольнению. Но вместо этого шеф сказал: «Саня, в пятницу был пиздец. Но ты его исправил. И знаешь что? Пока сайт лежал, мы провели совещание. Мы нанимаем команду, и ты будешь её тимлидом. Мы перепишем эту помойку с нуля. Ты единственный, кто в ней хоть что-то понимаеть».
Вот так одна ху($php)вая кнопка чуть не стоила Сане карьеры, но в итоге сделала его главным по уничтожению того, что он так ненавидел. Мораль? Иногда нужно всё развалить к херам, чтобы построить что-то новое. И всегда делайте бэкапы. Чертовы бэкапы.
