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

Приветствую ) Вопросик: Пытаемся развязать между собой сущности с помощью

общения через Id а не связи и подконтесты/контексты. В базе нет FK. Плюс Модули разных контекстов не должны знать друг о друге. Ну в общем как тут рассказывают и в книжках :)
Как архитектурно реализовать минимальную целостность ids? Т.е. проверить наличие сущности в другом контексте.
Делать какой-то Common/Gateways и в нем интерфейс с exist методом ?

45 ответов

8 просмотров
Павел-Г. Автор вопроса

Логическая

Павел Г.
Логическая

так то понятно, что без референсов хочешь, но если тебе нужен будет join какой нить, то по чем будет поиск в бд?

Павел Г.
А как join зависит от FK?

ну так сделай их FK, или у тебя нет уникальности их?

Павел-Г. Автор вопроса
Павел-Г. Автор вопроса
Michel Angelo
странно...

Ну смотри, есть два контекста например. Ведут рахные разрабы их. При FK есть зависимость их работы. Должны быть созданы таблицы,заведены данные. Сложности одни. + FK лишняя нагрузка на базу.

повышать достоверность входящих айдишников, понижать возможность прихода ошибочного айдишника в даунстрим сервисе. Сделать все, чтобы если пришел новый айдишник, то он 100% есть. Так же можно предусмотреть компенсационные действия если апстрим сервис отрапортует об ошибочности ранее высланного айди

Павел-Г. Автор вопроса
Дмитрий Ткаченко
повышать достоверность входящих айдишников, понижа...

Это понятно , я банально могу сходить в другой сервис, репу и т.д. Как сделать это красиво :)

Павел Г.
Это понятно , я банально могу сходить в другой сер...

зачем тебе ходить? если у тебя есть айди, значит он существует в соседнем сервисе, иначе сделать так, чтобы айдишника у тебя не было в случае ошибки/удаления

а зачем тебе метод exists? в какой момент ты его хочешь вызывать?

Павел-Г. Автор вопроса
Павел-Г. Автор вопроса
Valentin Gerbey
а зачем тебе метод exists? в какой момент ты его х...

В каком нить бизнес процессе, или в контроллере прям

Павел Г.
Прилетел с формы, хрен знает что за id

а как так получается что у тебя raw данные, которые тебе не принадлежат приходят и тебе нужно делать ассампшоны насчет этих данных?

Павел-Г. Автор вопроса
Дмитрий Ткаченко
а как так получается что у тебя raw данные, которы...

Сложно написано... не все понял. Прилетели данные с фронта. Фронт ошибся, или кто то спамит невалидными данными

Павел Г.
Прилетел с формы, хрен знает что за id

вот чтобы ни абы какой, то приведи id к vo, и читаемость улучшит, ну и кое как будет фильтровать

Павел Г.
Сложно написано... не все понял. Прилетели данные ...

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

Павел-Г. Автор вопроса

Этот вариант нравится вполне :) Поэтому совета и просил)

Павел Г.
Ну смотри, есть два контекста например. Ведут рахн...

+FK лишняя нагрузка на базу? 🥺 а чем отличается нагрузка на бд FK от обычного кей?

Павел-Г. Автор вопроса
Павел Г.
То что проверка целостности и дедлоки

проверка целостности чего? Дедлоки? у тебя что там, конкурентные запросы?

Павел-Г. Автор вопроса
Michel Angelo
проверка целостности чего? Дедлоки? у тебя что та...

Целостости что FK есть в другой таблице, каждый раз чекать. Дедлоки - к слову сказал, но проблема такая у FK есть

Павел Г.
Этот вариант нравится вполне :) Поэтому совета и п...

мне кажется тебе надо больше задумыватьяс когда ты что то делаешь, а не просто делать потому что где то написано, как с этитим фк, ты удалил FK, что бы "развязать модули" и сразу решил добавить Gateway с методом exits что бы их быстреньке связать назад только уже своими костылями

Павел-Г. Автор вопроса
Valentin Gerbey
мне кажется тебе надо больше задумыватьяс когда ты...

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

Павел-Г. Автор вопроса

Например мы с напарником сейчас пилим паралельно сущности, у них есть связи (логичские через id). Без ФК мы не ждем друг друга и прекрасно справляемся :) С ФК было бы сложнее.

А зачем это проверять? Ну добавишь ты проверку на existing. А потом эта сущность пропадет из другого контекста. И что тогда

Павел Г.
Например мы с напарником сейчас пилим паралельно с...

и все таки если связи в одном модуле (контектсе), не вижу ничего плохого в fk, ты больше получишь оверхеда, чем профита от 'развязал сущности'

Павел-Г. Автор вопроса
Alexander
А зачем это проверять? Ну добавишь ты проверку на...

Это уже другой вопрос. Некоторые вещи softdelete, некоторые удалять ивентами и как то уже решать по бизнесу. Для чего: 1) чтобы прям откровенный шлак не лежал 2) фронт был консистентный а не проверял везде на null

Павел-Г. Автор вопроса
Павел Г.
Это уже другой вопрос. Некоторые вещи softdelete, ...

Может эти две модели должны быть вместе тогда?

Павел-Г. Автор вопроса

Так а что плохого случится если не будет айди в другом контексте или целостности? Весь прикол изготовления от связей fk или ссылочных это в том что пофиг есть в данном месте или нет. За это отвечает тот процесс которому надо обе эти штуки и знает что делать если они есть или нету.

Павел-Г. Автор вопроса
Sergei Baikin
Так а что плохого случится если не будет айди в др...

Ну пример - кривой фронт. Или нарушится какой-либо процес, и это надо компенсировать.

Павел Г.
Ну пример - кривой фронт. Или нарушится какой-либо...

Исправить фронт? Или процесс? И все. Ну и а что меняется если кривой fk также надо компенсировать. Обсолютно тоже самое вроде

Sergei Baikin
Так а что плохого случится если не будет айди в др...

согласен, всегда есть корень, который ссылается на другую сущность, в редких кейсах требуется ссылаться и в обратную сторону

Michel Angelo
согласен, всегда есть корень, который ссылается на...

Не понял но ладно. Вообще айди это обычно всё что обьедняет. Корень это про агрегаты. А не про независимые процессы.

Павел-Г. Автор вопроса
Sergei Baikin
Исправить фронт? Или процесс? И все. Ну и а что ме...

Как исправить фронт ? Вот допустим есть связь. Я присылаю какую нить структуру json фронту, ну не знаю order а в нем профиль заказчика краткий. По какой то причине там лежит некорректный userId в БД у order. Выходит я пришлю пустого юзера. Фронту надо это тоже как то обрабатывать, мне как то обрабатыват чтобы сделать nullable, зачем?

Павел Г.
Как исправить фронт ? Вот допустим есть связь. Я ...

Так джоин в этом случае просто ничего не вернёт и всё

Павел-Г. Автор вопроса
Sergei Baikin
Так джоин в этом случае просто ничего не вернёт и ...

Да, но мне надо сделать обработку чтобы прислать или null или profile и тоже самое сделать фронту. Вопрос зачем?

Разве у VO могут быть id?

Алексей
Разве у VO могут быть id?

большинство понимает это как vo, я же это называю 'приведение к типу'

сори, ваш ответ в контексте корректный, а вопрос на который вы отвечали — нет у меня произошел мисматч ответа и вопроса

Максим Федоров
сори, ваш ответ в контексте корректный, а вопрос н...

Ну да. Если отдельно взять вопрос и ответ, то фигня какая-то)

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

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

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
49
читать файл максимально быстро? странный вопрос))
zamtmn
53
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
How to create an OS in C? what to study?
Linus
18
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Народ, с прошедшими и наступающими. Ща полную ересь прогоню, но фишка в том, что это не обычная алкогольная ересь Либера, а я реально хз что делать. Сайт с 2012-го года Косяк...
Alexey Liber
1
Карта сайта