Выбор ответа Junior Clean Architecture и слои спрашивают часто обновлено
Зачем маппить DTO в доменные модели
Вопрос
Зачем преобразовывать ответ сервера (DTO) в отдельную доменную модель?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Чтобы изменения API и базы не расползались по приложению, а домен работал с проверенными типами. DTO повторяет формат сервера: snakecase, строки вместо дат, опциональные поля «на всякий случай».
Варианты ответа
- Так быстрее работает сеть: доменная модель меньше DTO и сериализуется в запрос компактнее
- Это требование App Store и Google Play к приложениям, которые хранят данные пользователя
- Чтобы изменения API и базы не расползались по приложению, а домен работал с проверенными типамиправильный ответ
- DTO нельзя декодировать без маппинга: Codable и kotlinx.serialization требуют на входе доменный тип
Разбор
DTO повторяет формат сервера: snake_case, строки вместо дат, опциональные поля «на всякий случай». Доменная модель описывает понятия приложения: Date, enum статуса, обязательные поля. Маппинг в одном месте (data-слой) изолирует остальной код от изменений API. Скорость сети и требования магазинов тут ни при чём.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Clean Architecture и слои»
- Правило зависимостей в Clean Architecture
- Пакеты по слоям или по фичам
- Инверсия зависимостей
- Слои мобильного приложения
- Сколько моделей нужно на сущность
- Путь действия пользователя через слои
- Когда Clean Architecture избыточна
- Где объявлять интерфейс репозитория