Size: a a a

Software Design/Architecture/Zen

2021 January 11

SP

Sergey Protko in Software Design/Architecture/Zen
Ihor Pohorilyi
Как пример, посмотрел объяснение с этого поста https://stackoverflow.com/questions/48805723/repository-and-data-mapper-coupling, к сожалению у Фаулера не нашел подобного. Разве что он пишет, что маппер может взять на себя обязаность репозитория (если не ошибаюсь)
есть простой rule of thumb. тянешь данные на чтение - вжопу фаулеров и прочий булшит с дата мэпперами и репозиториями. Если угорать тут по фаулеру то это у него картинка с несколькими DTO на вход ассемблером и DTO на выход
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну а если у тебя "сущность" из двух сорсов на запись тянется то ты просто проебался потому что не сможешь гарантировать запись консистентно
источник

IP

Ihor Pohorilyi in Software Design/Architecture/Zen
Sergey Protko
ну а если у тебя "сущность" из двух сорсов на запись тянется то ты просто проебался потому что не сможешь гарантировать запись консистентно
только на чтение
источник

IP

Ihor Pohorilyi in Software Design/Architecture/Zen
в общем, это хрень, которая консолидирует инфу используя разные сервисы и отдает по запросу фронта
источник

AK

Aleh Kashnikau in Software Design/Architecture/Zen
Sergey Protko
есть простой rule of thumb. тянешь данные на чтение - вжопу фаулеров и прочий булшит с дата мэпперами и репозиториями. Если угорать тут по фаулеру то это у него картинка с несколькими DTO на вход ассемблером и DTO на выход
если читаешь, то в жопу инструменты для записи
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Ihor Pohorilyi
в общем, это хрень, которая консолидирует инфу используя разные сервисы и отдает по запросу фронта
возьми готовый api gateway и не еби себе голову
источник

AK

Aleh Kashnikau in Software Design/Architecture/Zen
Ihor Pohorilyi
в общем, это хрень, которая консолидирует инфу используя разные сервисы и отдает по запросу фронта
как Сергей и сказал, вам там особо сущности, дата мэпперы и не нужны
источник

IP

Ihor Pohorilyi in Software Design/Architecture/Zen
спс
источник
2021 January 12

HH

Human Human in Software Design/Architecture/Zen
Посоветуйте, пожалуйста, как лучше всего назвать действия (нейминг для апи):
Есть расписание. И первый запрос апи это типа захват лока или начало редактирования, чтобы никто другой не мог начать менять. А второй запрос это сама пачка изменений после чего лок снимается. Но в тоже время должен быть еще гейт для снятия лока без изменений.

Пока что думаю вот так:
/schedule/start-edit
/schedule/change
/schedule/finish-edit
/schedule/start-edit
/schedule/change
/schedule/finish-edit


Но так не очень понятно, что change также снимает лок, это надо читать уже в описании change.
Мб лучше убрать finish-edit и сделать возможным прислать ноль изменений. Но так тоже странно, получается когда хотим завершить редактирование без изменений - мы посылаем change.
источник

IS

I Scarab in Software Design/Architecture/Zen
Human Human
Посоветуйте, пожалуйста, как лучше всего назвать действия (нейминг для апи):
Есть расписание. И первый запрос апи это типа захват лока или начало редактирования, чтобы никто другой не мог начать менять. А второй запрос это сама пачка изменений после чего лок снимается. Но в тоже время должен быть еще гейт для снятия лока без изменений.

Пока что думаю вот так:
/schedule/start-edit
/schedule/change
/schedule/finish-edit
/schedule/start-edit
/schedule/change
/schedule/finish-edit


Но так не очень понятно, что change также снимает лок, это надо читать уже в описании change.
Мб лучше убрать finish-edit и сделать возможным прислать ноль изменений. Но так тоже странно, получается когда хотим завершить редактирование без изменений - мы посылаем change.
cancel-edit?
источник

HH

Human Human in Software Design/Architecture/Zen
I Scarab
cancel-edit?
finish-edit меня вцелом устраивает. Это аналоги lock/unlock. Мне просто кажется нелогичным именно, что change включает в себя функционал и change, и finish-edit. Что скорее всего непонятно из названия change и надо смотреть описание контракта.
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
change-and-finish)
источник

HH

Human Human in Software Design/Architecture/Zen
Вот я хотел избежать такого названия) change-and-finish-edit
источник

HH

Human Human in Software Design/Architecture/Zen
Но лучше наверное действительно длиннее, но понятнее
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
можно сделать метод edit, который требует "запущенной транзакции", а можно сделать метод update, который сам запускает, меняет, и завершает транзакцию
источник

IS

I Scarab in Software Design/Architecture/Zen
Вообще в идеологии REST рекомендуется оперировать объектами, а не действиями.
Возможно, правильнее сделать сущность "сеанс редактирования" со своим неким id. При создании - вешать лок. При завершении - лок снимать. Изменения в процессе редактирования - ну их может быть 0 или больше.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
I Scarab
Вообще в идеологии REST рекомендуется оперировать объектами, а не действиями.
Возможно, правильнее сделать сущность "сеанс редактирования" со своим неким id. При создании - вешать лок. При завершении - лок снимать. Изменения в процессе редактирования - ну их может быть 0 или больше.
покажи мне этих идеолохов?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
с такой идеологией вместо "писать и проектировать апишки" надо "проектировать базы и вешать сверху готовые гейтвеи"
источник

IS

I Scarab in Software Design/Architecture/Zen
Тогда это будет что-то типа:
/edit/create
/edit/1234/change
/edit/1234/commit
или
/edit/1234/cancel
если нужны транзакции.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
а сорян, вы не про тупой круд
источник