К содержанию

Мысли2 мин чтения

Задачи, у которых нет готового решения

Самые интересные проекты начинаются со слов «так нельзя» или «у них нет API». Пять историй о том, что я делаю в таких случаях.

Нуралы КопбосынДизайнер и разработчик цифровых продуктов · 8 лет, 80+ проектов
Содержание6 разделов
  1. Каталог, который нельзя рекламировать
  2. Склад без API
  3. Платежи без API
  4. Голосование, которое будут накручивать
  5. Систему нельзя остановить
  6. Что общего

Когда-то я записал для себя мысль: куда не хочется идти — туда и нужно. В работе это значит: самые ценные задачи — те, от которых другие отказываются. У них нет готового решения, поэтому их и не решили до меня.

Вот пять таких историй.

Каталог, который нельзя рекламировать

Табачному магазину нужен был каталог. Но закон запрещает рекламу табака. Я изучил закон и нашёл окно: показывать каталог можно тому, кто сам его запросил. Отсюда одноразовые ссылки — каталог открывается один раз и не пересылается — и закрытый клуб в Telegram с подтверждением продавцом. Отдельно пришлось защититься от ботов, которые в мессенджерах открывают ссылку для превью и «сжигают» её раньше клиента. Кейс Wigwam.

Склад без API

Для того же магазина я делал сайт, который берёт цены и остатки со склада. У складской системы UMAG не было API для интернет-магазина. Магазин уже присматривал другой учёт — с переездом, переобучением продавцов и переносом базы. Я добился, чтобы UMAG открыл API. Магазин остался на своей системе, сайт обновляется каждые пять минут.

Платежи без API

Онлайн-копилке на хадж нужно было учитывать пополнения через Kaspi. API для такого сценария нет. Зато на каждый платёж приходит уведомление — с ИИН, суммой и номером операции. Система читает уведомления и раскладывает деньги по счетам, а номер операции защищает от двойного учёта. Кейс Atlas Save.

Голосование, которое будут накручивать

Любое публичное голосование будут пытаться накрутить — это не вопрос «если». Для Freedom Ticketon Awards я сначала разобрал схемы накрутки, а потом строил защиту — вход через Google и валидацию каждого голоса. 142 868 голосов, премия состоялась.

Систему нельзя остановить

Турнир на платформе Digital Hustlas работал на чужом бэкенде, и остановить его было нельзя. Я заменял его по частям: новые обработчики перехватывали запросы один за другим, а сайт продолжал работать, не замечая переезда.

Что общего

Каждый раз один и тот же порядок:

  1. Точно понять ограничение — текст закона, документацию, формат данных.
  2. Найти окно — юридическое, техническое или человеческое (иногда достаточно договориться).
  3. Проверить на реальных данных, а не на примерах из документации.
  4. Защититься от краевого случая, который сломает всё в самый неудобный момент.

Готовое решение — это хорошо, когда оно есть. Но мне интереснее там, где его нет. Если у вас такая задача — напишите.

Есть задача — напишите, разберём.

Опишите в двух словах, что нужно, — отвечу сам, без менеджеров и брифов на десять страниц.