Вступить в клуб →
лёгкаявопросАрхитектура игрового кода

Скрипт на кнопке магазина делает всё: списывает валюту, выдаёт предмет и шлёт аналитику

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

  • Это нормально, пока код помещается в один файл: разделение на слои нужно только большим командам, а маленькой оно лишь замедляет разработку фич
  • Достаточно вынести тело обработчика в статический класс-помощник и звать его из всех шести кнопок: связанность исчезнет, а логика окажется в одном месте
  • Проблема в том, что обработчик нажатия назначен через инспектор, а не подписан в коде
  • Элемент интерфейса тянет на себя доменную логику: покупку должен выполнять сервис, а кнопка — сообщать о намерении

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела