← Все статьи

Бонусы и пакеты: как проектировать необратимое действие

О коллекции

Авторская работа коллекции Аишки. Персонажи и исходные ситуации придуманы; материал не подтверждает заказ или результат действующего клиента.

Списать бонусы легко. Объяснить случайное повторное списание сложнее. Поэтому необратимые действия проверяю отдельно от обычной навигации по приложению.

Содержание 8

Опишите ресурс и границы его действия

Бонусы могут быть доступны, ожидать начисления или истекать. Пакет занятий ограничен и количеством, и сроком. Не сводите все к одному красивому балансу без условий. Покажите, что можно использовать сейчас и почему часть ресурса недоступна. Правила должны происходить из согласованной программы, а не придумывать выгодные условия для наполнения экрана. Для каждого изменения сохраняйте причину: покупка, запись, отмена, истечение или ручное решение.

На практике

Сделайте повтор команды безопасным

Пользователь может нажать дважды, сеть — оборваться после сохранения, а приложение — повторить запрос. Операция должна узнавать тот же запрос и возвращать прежний результат, не выполняя списание снова. Эта проверка нужна на стороне, которая изменяет ресурс, а не только в отключенной кнопке. Отдельно проверяйте конкурентные действия из двух вкладок или устройств. В интерфейсе полезно объяснять итог простыми словами, не показывая внутренние технические идентификаторы.

На практике

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

Отмена не всегда означает полное возвращение ресурса: это зависит от правил программы и стадии исполнения. Опишите допустимые переходы заранее. Повтор отмены не должен начислять бонусы или занятия второй раз. Если действие уже невозможно, сохраните понятную причину и путь обращения. Для истории важно видеть исходную операцию и связанную корректировку, а не просто измененный итоговый баланс. Так человек и поддержка смогут восстановить, что произошло.

Прохожу действие с двойным нажатием и возвратом на экран. Пользователь должен увидеть один понятный итог, а не гадать, сколько раз система его услышала.

На практике

Перед тем как передать материал дальше

  • ☐Разделить доступный, ожидающий и истекший ресурс.
  • ☐Сохранить причину каждого изменения.
  • ☐Проверить двойное нажатие и повтор после обрыва сети.
  • ☐Отдельно проверить отмену и повтор отмены.

Работы из этого разбора

Источники

Обсуждение

Задайте вопрос об этой работе, обсудите решение или поделитесь своим опытом.

Обсуждение открыто для всех участников.

Загружаем комментарии…