Size: a a a

Software Design/Architecture/Zen

2021 January 19

IS

I Scarab in Software Design/Architecture/Zen
Segmentation Fault
Да, можно. Вот я и спрашиваю где этот сервис должен быть. Это слой домена?
если по Фаулеру, то сервисный слой живёт отдельно.
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Segmentation Fault
1. ЗАЧЕМ? Я могу просто у репозитория метод вызвать.
2. Что страшного если мусор в данных? Например, недополучит пару миллионов пока мы разбираемся что не так.
1 на случай независимости и когда не можете
2 вот не вижу что страшного если так хочется можено пойти и почистить потом.
Каким образом бизнес потеряет пару миллионов?
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Max Grom
Вы не бизнес, что бы решать что принесёт или не принесёт профита. Человек пришёл с вопросом о консистентности - значит ему она нужна. Не перекручивайте всё просто так от неимения никаких вводных
просто в 90% люди хотят консистентность ради консистентности потомучто так привыкли
источник

MG

Max Grom in Software Design/Architecture/Zen
И пусть хотят. Меньше хаоса будет
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Segmentation Fault
1. ЗАЧЕМ? Я могу просто у репозитория метод вызвать.
2. Что страшного если мусор в данных? Например, недополучит пару миллионов пока мы разбираемся что не так.
Так поставьте констреинт в базе и все делов тогда
в чем проблема если у вас там один большой кусок связанных данных
источник

SF

Segmentation Fault in Software Design/Architecture/Zen
I Scarab
если по Фаулеру, то сервисный слой живёт отдельно.
Получается в бизнес процессе "создания контракта" не будет участвовать слой доменного сервиса?
источник

SF

Segmentation Fault in Software Design/Architecture/Zen
Sergei Baikin
Так поставьте констреинт в базе и все делов тогда
в чем проблема если у вас там один большой кусок связанных данных
Я пожалуй буду тебя игнорировать..
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Max Grom
И пусть хотят. Меньше хаоса будет
По моему опыту хаоса ни чуть не меньше ибо колисество связей и зависимостей растет и все это валится друг за другом при малейшем чихе
источник

IS

I Scarab in Software Design/Architecture/Zen
про консистентность... достаточно разок посмотреть на 1С с отключенной проверкой уникальности ИНН. Тысячи левых записей, многие контрагенты введены по 2-3 раза с кривыми наименованиями, паспортные данные физиков введены с ошибками и опечатками, это всё вылезает в самых неподходящих местах...
Это всё ОЧЕНЬ вредит бизнесу.
источник

MG

Max Grom in Software Design/Architecture/Zen
Sergei Baikin
По моему опыту хаоса ни чуть не меньше ибо колисество связей и зависимостей растет и все это валится друг за другом при малейшем чихе
У меня противоположный опыт. Если у вас много связей, то несоблюдение консистентности в системе только добавит вам головной боли. Автоматизация - вещь точная. Нельзя автоматизировать хаос
источник

SF

Segmentation Fault in Software Design/Architecture/Zen
Max Grom
У меня противоположный опыт. Если у вас много связей, то несоблюдение консистентности в системе только добавит вам головной боли. Автоматизация - вещь точная. Нельзя автоматизировать хаос
Жаль нельзя лайки ставить
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
I Scarab
про консистентность... достаточно разок посмотреть на 1С с отключенной проверкой уникальности ИНН. Тысячи левых записей, многие контрагенты введены по 2-3 раза с кривыми наименованиями, паспортные данные физиков введены с ошибками и опечатками, это всё вылезает в самых неподходящих местах...
Это всё ОЧЕНЬ вредит бизнесу.
eventual consustency не слышали?
это именно то что я предлагал.

Ибо к запросам к репе он не получит консистентности
во время между запросом и сохранением можно успеть удалить как бы то что мы запрашивали.

Для консистености на месте спасет только фориджен кей в базе он же констреин как я ранее писал
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Max Grom
У меня противоположный опыт. Если у вас много связей, то несоблюдение консистентности в системе только добавит вам головной боли. Автоматизация - вещь точная. Нельзя автоматизировать хаос
как запрос в репу даст вам консистеность?
вы собираетесь лочить все таблицы с которыми работаете в фиче?
источник

IS

I Scarab in Software Design/Architecture/Zen
Sergei Baikin
eventual consustency не слышали?
это именно то что я предлагал.

Ибо к запросам к репе он не получит консистентности
во время между запросом и сохранением можно успеть удалить как бы то что мы запрашивали.

Для консистености на месте спасет только фориджен кей в базе он же констреин как я ранее писал
Это здорово в рамках какого-нибудь мелкого сайтика.
А если это распределённое бизнес-приложение и база компаний - это вообще сторонний сервис, обращение к которому ведётся через API?
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
I Scarab
Это здорово в рамках какого-нибудь мелкого сайтика.
А если это распределённое бизнес-приложение и база компаний - это вообще сторонний сервис, обращение к которому ведётся через API?
тогда нам нужен как раз eventual consistency.
Вы просто принимаете и живете с тем что данные какое то время могут быть неконсистентны
источник

MG

Max Grom in Software Design/Architecture/Zen
Sergei Baikin
как запрос в репу даст вам консистеность?
вы собираетесь лочить все таблицы с которыми работаете в фиче?
Так консистентность это не про запросы, а про данные и логику. Вы либо разрешаете хаос, либо нет. Человек пришёл с желанием не делать хаос - вы же пытаетесь убедить его, что можно сохранять всё подряд. Я лишь высказал несогласие с вашей позицией ибо к моему убеждению это только навредит системе
источник

N

Nikita in Software Design/Architecture/Zen
Добрый день. Можете пожалуйста подсказать в чем отличие между DAO и Repository, и что каждый должен делать? В сети четкого ответа почему то не нашел
источник

MG

Max Grom in Software Design/Architecture/Zen
Segmentation Fault
У меня таких хендлеров 3: rest, graphql, cli. Они используют один сервис в котором есть метод для создания контракта по атрибутам. Я этот сервис и дергаю. Но это же не домен, верно?
Напишите валидацию для создания контракта и вызывайте её на каждом из точек обращения к вашей системе. Будет эта валидация глубоко в домене или на поверхности - дело ваше
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Max Grom
Так консистентность это не про запросы, а про данные и логику. Вы либо разрешаете хаос, либо нет. Человек пришёл с желанием не делать хаос - вы же пытаетесь убедить его, что можно сохранять всё подряд. Я лишь высказал несогласие с вашей позицией ибо к моему убеждению это только навредит системе
да я при чем не говорил отказыватся от консистенсности я предожил сделать ее eventual

Также преложил forigin ключи в базе на случай немедленной консистености но  после этого меня вообще решили игнорировать.

Я то думал если человек не может через forigin ключ то у него система распределенная...
Но оказалось все несколько страшнее

Или вы противник eventual consistency?
источник

SF

Segmentation Fault in Software Design/Architecture/Zen
Max Grom
Напишите валидацию для создания контракта и вызывайте её на каждом из точек обращения к вашей системе. Будет эта валидация глубоко в домене или на поверхности - дело ваше
Вот я спрашиваю: где с точки зрения ddd она должна происходить?
источник