Проектирование архитектуры клиентской части для логирования пользовательских сценариев (мобильная)

Разделите сбор событий, очистку данных, локальный журнал с TTL и uploader. Серверные запросы на выгрузку должны проходить через тот же контролируемый pipeline.

Короткий ответ

Что ответить на собеседовании

Разделите сбор событий, очистку данных, локальный журнал с TTL и uploader. Серверные запросы на выгрузку должны проходить через тот же контролируемый pipeline.

Подробный разбор

Ответ с пояснениями

Условие

Разработать верхнеуровневую структуру мобильного клиента, отвечающего за сбор и передачу логов пользовательских сценариев. Необходимо включить следующие компоненты:

  • сбор метаданных: идентификатор пользователя, версия приложения, сведения об устройстве;
  • описание событий: открытые экраны, запросы к серверу, входящие и исходящие данные, результаты выполнения, возникшие ошибки, отметки времени;
  • локальное кэширование с политикой истечения срока хранения;
  • механизмы ручного и автоматического выгрузки логов;
  • возможность получения логов по запросу сервера;
  • определение формата и объёма передаваемых данных.

Серверный контракт: сериализованный файл журнала в JSON, содержащий события, связанные с пользователем, временем, экраном и версией приложения.

Ответ

Разделите сбор событий, очистку данных, локальный журнал с TTL и uploader. Серверные запросы на выгрузку должны проходить через тот же контролируемый pipeline.

Collector формирует JSON-запись с event-id, временем, экраном, версией приложения, псевдонимным user-id и correlation-id. Raw входящие/исходящие тела по умолчанию не сохраняйте: используйте allowlist полей, коды результата и размеры. Storage ограничивает общий объём, удаляет просроченное и сохраняет курсор выгрузки. Uploader сжимает сериализованный журнал, отправляет чанками и повторяет только неподтверждённые части. Ручная и серверная выгрузка используют одинаковые проверки доступа, согласия и лимитов. Ключи хранятся отдельно; сетевой запрос не должен держать блокировку хранилища.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее