Мысли2 мин чтения
Задачи, у которых нет готового решения
Самые интересные проекты начинаются со слов «так нельзя» или «у них нет API». Пять историй о том, что я делаю в таких случаях.
Нуралы КопбосынДизайнер и разработчик цифровых продуктов · 8 лет, 80+ проектовСодержание6 разделов
Когда-то я записал для себя мысль: куда не хочется идти — туда и нужно. В работе это значит: самые ценные задачи — те, от которых другие отказываются. У них нет готового решения, поэтому их и не решили до меня.
Вот пять таких историй.
Каталог, который нельзя рекламировать
Табачному магазину нужен был каталог. Но закон запрещает рекламу табака. Я изучил закон и нашёл окно: показывать каталог можно тому, кто сам его запросил. Отсюда одноразовые ссылки — каталог открывается один раз и не пересылается — и закрытый клуб в Telegram с подтверждением продавцом. Отдельно пришлось защититься от ботов, которые в мессенджерах открывают ссылку для превью и «сжигают» её раньше клиента. Кейс Wigwam.
Склад без API
Для того же магазина я делал сайт, который берёт цены и остатки со склада. У складской системы UMAG не было API для интернет-магазина. Магазин уже присматривал другой учёт — с переездом, переобучением продавцов и переносом базы. Я добился, чтобы UMAG открыл API. Магазин остался на своей системе, сайт обновляется каждые пять минут.
Платежи без API
Онлайн-копилке на хадж нужно было учитывать пополнения через Kaspi. API для такого сценария нет. Зато на каждый платёж приходит уведомление — с ИИН, суммой и номером операции. Система читает уведомления и раскладывает деньги по счетам, а номер операции защищает от двойного учёта. Кейс Atlas Save.
Голосование, которое будут накручивать
Любое публичное голосование будут пытаться накрутить — это не вопрос «если». Для Freedom Ticketon Awards я сначала разобрал схемы накрутки, а потом строил защиту — вход через Google и валидацию каждого голоса. 142 868 голосов, премия состоялась.
Систему нельзя остановить
Турнир на платформе Digital Hustlas работал на чужом бэкенде, и остановить его было нельзя. Я заменял его по частям: новые обработчики перехватывали запросы один за другим, а сайт продолжал работать, не замечая переезда.
Что общего
Каждый раз один и тот же порядок:
- Точно понять ограничение — текст закона, документацию, формат данных.
- Найти окно — юридическое, техническое или человеческое (иногда достаточно договориться).
- Проверить на реальных данных, а не на примерах из документации.
- Защититься от краевого случая, который сломает всё в самый неудобный момент.
Готовое решение — это хорошо, когда оно есть. Но мне интереснее там, где его нет. Если у вас такая задача — напишите.
