Мой самый большой факап за карьеру 🥲
Было много всего: и продакшн ронял и базу данных портил и сервера из строя выводил, но больше всего нервов потрепал один единственный случай.
Мы с друзьями решили сделать
свое медиа и заработать на нем кучу денег. План понятен, осталось всего ничего - реализовать. Собралась серьезная большая команда из крутых специалистов, которая пилила проект в свободное от основной работы время, в течении года. В процессе к нам даже пришла большая компания, которая предложила денег за обучение стажеров на нашем проекте, нам пришлось найти менеджера, тестировщика и устраивать дейлики. В общем процессов полные штаны, но за ноль денег: все, заработанное на стажерах, откладывались на редакцию и оплату серверов после запуска.
На этом проекте мы придумали и реализовали одну интересную фичу: создание постов в медиа через гитхаб, то есть любой желающий создает пулл реквест, и после мержа этот пост попадает на медиа. В общем здорово, интересно. Я тогда впервые поработал с веб хуками, все протестировал, этот функционал прошел секцию QA и долгое время перед продакшеном успешно использовался на проекте.
Релиз. Посты публикуются редакцией, десятки тысяч просмотров ежедневно, более тысячи зарегистрированных пользователей, море позитивного фидбэка — это казалось успехом для нас всех, и мы договорились встретиться еще спустя несколько дней, чтобы это отметить. В день встречи я встал пораньше и поехал на машине пятьсот километров в съемную квартиру, незнакомого мне города.
Я доехал, заселился, успел прогуляться по городу и за пару часов до встречи рабочий чат начинает разрываться от сообщений о упавшем продакшене. Редеплой не помогает, медиа не доступно и все произошло после добавления поста. Представили ситуацию? Я в чужом городе и функционал, от которого, как казалось, зависит успех всего проект и меня, в частности, критически ломается. Мне и представлять не надо, я был в ужасе и начал думать, как это можно исправить, ведь с собой не было даже ноутбука.
По итогу я засел в местном компьютерном клубе, шокировал всех, что пришел не играть и дебажил код в голове с страницы на гитхаб. Дело оказалось в том, что публикация была через форк (Я на такой сценарий не рассчитывал и никак не проверял), и мой алгоритм парсинга контента сохранял в БД какую-то дичь. Пришлось удалять пост через админку и не использовать такой флоу в ближайшее время. В последующем этот кейс я тоже учел и доработал код
Что я вынес из этого факапа?
1. Мы разработали фичу без четкого понимания сценария использования. Такого быть не должно
2. Разработчику очень часто видны слабые места своего кода заранее. Не стоит слепо рассчитывать на QA.
А это я вчера на даче у дочки шляпу забрал. Сейчас дома работу работаю