214 похожих чатов

Подскажите такой кейс: Есть серверная моделька с кучей полей, для

ui нужно только 2 (id, name), name можно менять из ui. Собственно с мапом в сторону ui нет проблем, а как и где смапить обратно?
Правильным ли будет такой подход: в репозитории делаем saveModel(uiModel), внутри которого получаем актуальную серверную модельку, меняем в ней name и сохраняем на сервер?

9 ответов

4 просмотра

сразу видна одна проблема в этом подходе: репозиторий не должен знать про модели UI

Обратно в репозиторий методом updateModelName(id, newName), а там уже на сервер по логике

Сергей- Автор вопроса
Сергей- Автор вопроса
Пользователь 614a5
Обратно в репозиторий методом updateModelName(id, ...

В реальном кейсе слишком много параметров, чтобы их передавать отдельно

Вам нужно маппить в Presentation и не только 2 поля, а весь объект. Обратно же Вы не 2 поля будете отправлять

Сергей
То есть мапить прямо в презентере?

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

Zlatko Pušić
если у вас презентер знает про серверные модели, т...

создавать дополнительный тип модели только для маппинга - нарушение YAGNI, в этом случае серверная выступает вместо доменной

Jorik Fat
создавать дополнительный тип модели только для мап...

я думаю, раз в вопросе изначально упоминался маппинг, то всё же маппинг требуется

Zlatko Pušić
я думаю, раз в вопросе изначально упоминался маппи...

Да, маппинг требуется, но маппинг Network➡️View. Маппинг Network➡️Domain➡️View - избыточен

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Какое виндузовое сообщение приходит TTabSheet, что риэлайняться контролы на нем, даже у которых парент другой? Ситуация: открываю форму - кнопок нет, перелистываю на другой т...
Катерина Свиридова
7
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Карта сайта