Найти в Дзене
3D и не только

Звезда в шоке: я вернулся и принёс вам автопоиск догситтеров

Привет. Давно не виделись. Я на минуту заглянул сюда — и о боже, меня всё ещё читают.
Это как выйти из спячки, а там фан-клуб уже стоит с плакатами: «Где ты был, старый перфокарточник?!» Короче, шок, слёзы, обнимашки.
Решил не молчать и вывалить свежую историю из окопов удалёнки. За последние полгода жизнь меня нормально так прокачала.
Я даже успел поработать судебным экспертом. Бесплатно.
На благо человечества. Не благодарите. Но сегодня — не про суды.
Сегодня про проект, который два месяца ел мои нервы, сон и заставлял разговаривать с монитором. Продакт-менеджер компании, для которой я периодически дорабатываю сайт, пришёл с идеей: «Хотим, чтобы гость сайта не просто листал карточки догситтеров,
а получал автоматический подбор по критериям.
Плюс реалтайм: кто откликнулся, сколько просмотров.
И только потом — регистрация и сразу в чат». Для меня это звучало как: «Проверь, не разучился ли ты кодить». Я согласился.
Потому что люблю сложные задачи.
И потому что иногда кажется,
Оглавление

Привет. Давно не виделись.

Я на минуту заглянул сюда — и о боже, меня всё ещё читают.

Это как выйти из спячки, а там фан-клуб уже стоит с плакатами:

«Где ты был, старый перфокарточник?!»

Короче, шок, слёзы, обнимашки.

Решил не молчать и вывалить свежую историю из окопов удалёнки.

За последние полгода жизнь меня нормально так прокачала.

Я даже успел поработать судебным экспертом. Бесплатно.

На благо человечества. Не благодарите.

Но сегодня — не про суды.

Сегодня про проект, который два месяца ел мои нервы, сон и заставлял разговаривать с монитором.

Задача уровня «а ты точно программист?»

Продакт-менеджер компании, для которой я периодически дорабатываю сайт, пришёл с идеей:

«Хотим, чтобы гость сайта не просто листал карточки догситтеров,

а получал автоматический подбор по критериям.

Плюс реалтайм: кто откликнулся, сколько просмотров.

И только потом — регистрация и сразу в чат».

Для меня это звучало как:

«Проверь, не разучился ли ты кодить».

Я согласился.

Потому что люблю сложные задачи.

И потому что иногда кажется, что страдание — это часть профессии.

Архитектура: аккуратно, не дышим

Создавать новую таблицу было нельзя — слишком много связей и исторического наследия.

Значит — расширяем существующие.

Каждый шаг ощущался как операция без права на ошибку.

Ты вроде просто добавляешь поле…

а в голове уже крутятся мысли:

«А если это неожиданно повлияет на что-то ещё?»

«А если я сегодня узнаю о системе больше, чем хотел?»

Но окей. Двигаемся дальше.

Концепцию я продумал, логику собрал, сценарии разложил.

И, конечно, каждый новый этап приносил свежий, коллекционный баг.

Я уже хотел выпускать календарь:

«Редкие ошибки года».

Из формы — в живой процесс

Через месяц появился рабочий скелет.

Не просто «форма → ответ»,

а полноценный пользовательский путь, который выглядит примерно так:

Человек оставляет заявку → система запускает подбор →

в реальном времени появляются цифры:

отправлено

просмотрено

откликнулось

И всё это без перезагрузки страницы.

Никаких F5.

Никаких «обновите позже».

Всё живёт и обновляется прямо на глазах.

Когда я впервые увидел, как отклики появляются в реальном времени —

это был маленький инженерный восторг.

Веб-сокеты и цифровая магия

Самое интересное начиналось в момент регистрации.

Пользователь сначала действует как гость,

а потом решает стать полноценным участником процесса.

И вот тут нужно аккуратно провести… цифровую магию.

Без потери данных.

Без дубликатов.

Без «ой, а где мой диалог?».

Фактически — мягкий переход от анонимности к реальному аккаунту,

чтобы всё выглядело так, будто так и было задумано.

И однажды…

Первый пользователь успешно прошёл этот путь и оказался в чате.

Я написал в командный чат:

«Маршрут построен.»

Это был маленький триумф.

На экране — просто открывшийся диалог.

А за кулисами — недели аккуратной работы.

И именно за такие моменты я люблю разработку.

А потом баги решили жить своей жизнью

Как только система начала вести себя «почти как настоящая»,

ошибки начали появляться.

И не старые знакомые.

А новые. С характером.

Есть железное правило:

Чем ближе к реальности — тем интереснее сюрпризы.

Пока тестируешь один сценарий — всё прекрасно.

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

Я бегал с огнетушителем фиксов,

ловил странные ситуации,

шлифовал логику,

проверял поведение в нестандартных сценариях.

Иногда казалось, что система специально придумывает новые способы меня удивить.

Переезд на тестовый сервер

Через два месяца функционал переехал в среду, максимально приближенную к боевой.

И знаете что?

Сюрпризов стало больше.

Потому что реальность — она сложнее, чем кажется в локальной среде.

Но это хороший знак.

Если ничего не ломается — значит, этим никто не пользуется.

А если появляются новые сценарии — значит, продукт живёт.

Сейчас всё в тестировании.

Работает.

Дышит.

Иногда даже не падает.

А для системы с историей и характером — это уже почти победа.

Зачем всё это?

Компания делает действительно полезную вещь — помогает людям находить догситтеров, передержку и выгул для питомцев.

Сервис называется Dogsy.ru.

Когда у меня 15 лет назад была собака, такого не существовало.

Оставить пса было как лотерея.

Сейчас — цивилизация.

Отзывы, обучение ситтеров, поддержка.

И скоро — автопоиск, который мы аккуратно выстрадали.

Если у вас есть проект, где нужно внедрить сложную логику, аккуратно встроиться в существующую систему и при этом не устроить цифровой апокалипсис — вы знаете, где меня найти.

Я всё ещё люблю сложные задачи.

Даже если они иногда любят меня слишком сильно.

До встречи в комментариях.

Не переключайтесь — я ещё вернусь 🙂