Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

А с DDD кто то уже работал?

1438  
AlexNek патриот20.09.23 22:48
AlexNek
20.09.23 22:48 

Какие впечатления? А то реклама красивая, но про недостатки не кричат.

#1 
AlexNek патриот21.09.23 20:02
AlexNek
NEW 21.09.23 20:02 
в ответ AlexNek 20.09.23 22:48

#2 
MrSanders коренной житель22.09.23 10:07
NEW 22.09.23 10:07 
в ответ AlexNek 20.09.23 22:48, Последний раз изменено 22.09.23 10:08 (MrSanders)

Угу, работал. Основной недостаток (имхо) - надо промывать мозги разработчикам. Сдвиг парадигм.

Как и во всем, что в сторону микросервисов смотрит - да, у нас будет встречаться одинаковый код. Да, Value Type-ы кажутся перебором (но как же с ними потом удобно). Да, хибернейт надо импользовать аккуратно (а лучше вообще не).


А так - хорошо продуманная технология как можно разрабатывать сервисы (незаметно для санитаров) и реже сраться с заказчиками :)


P.S. У меня даже сертификат есть - архитектура DDD. Но последние 3 года близко ничем подобным не занимался...

#3 
alex445 коренной житель22.09.23 10:51
NEW 22.09.23 10:51 
в ответ MrSanders 22.09.23 10:07

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

#4 
AlexNek патриот22.09.23 11:18
AlexNek
NEW 22.09.23 11:18 
в ответ MrSanders 22.09.23 10:07

ну здорово, а то как раз решают пользовать или нет.

А event storming точно по AB делали на стене или онлайн, сами или приглашали модератора?

Только вот начал разбираться, что решат еще неизвестно, но вопросов море.

#5 
MrSanders коренной житель22.09.23 14:32
NEW 22.09.23 14:32 
в ответ AlexNek 22.09.23 11:18, Последний раз изменено 22.09.23 14:34 (MrSanders)

На стене. Онлайн тяжелее, больше аремени уходит.

На первый раз без модератора не обойдётесь. Мы первые раза... три по-моему приглашали. Потом уже втянулись и сами. Как со скрамом, где story telling, тоже привыкнуть надо и посмотреть пару раз как оно работает.

#6 
AlexNek патриот23.10.23 21:52
AlexNek
NEW 23.10.23 21:52 
в ответ MrSanders 22.09.23 14:32

Начал играться с демо проектом дома. Что то не могу пока найти точный ответ.


Есть к нас агрегаты. Один агрегат к другому может связываться через ИД. Агрегаты мапятся на базу.

Допустим, имеем агрегаты Person (Id) и связанный Order(через PersonId).

Собственно в базе две таблицы Person с PK Id и Order с полем PersonId

В примерах, что встречал, для PersonId не делают FK. Но разве целостность базы нас не интересует?

Как же будет правильно, "соединять" таблицы или нет в ДДД?

#7 
MrSanders коренной житель28.10.23 20:27
NEW 28.10.23 20:27 
в ответ AlexNek 23.10.23 21:52

В DDD на это ответа нет. Как удобнее. А если ещё и про NoSQL не забывать, то оно и понятно.

Тут придётся подумать про транзакции. Каждый агрегат читается и пишется своим репозиторием. Мы как, хотим ждать чтобы записался Person прежде чем сохранять Order, если заказ для нового клиента делаем?

Или больше хотим не потерять ничего из заказа, и фиг с ним что может быть Person не запишем? (в случае заказа-клиента, конечно, достаточно невероятно, но мало ли).

Так что по требованиям. Надо целостность, делаем FK, надо распараллелить - не делаем FK. Я лично предпочитаю иметь целостные данные. Но иногда надо тупо записать, даже если с ошибками, потом восстановим / спросим пользователя.

Совет: если есть сомнения, не делаем FK. Его можно добавить потом. Пока не поняли что он нам нужен, работаем без него. Иногда неплохо так мешается, а в конце выясняется что целостность нам и не нужна. И вообще, данные о заказчике отдадим в другой сервис.

#8 
AlexNek патриот28.10.23 20:44
AlexNek
NEW 28.10.23 20:44 
в ответ MrSanders 28.10.23 20:27
Надо целостность, делаем FK, надо распараллелить - не делаем FK

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

Но если, я допустим, хочу оценить заказ, то не имея полученного заказа, это сделать еще просто нельзя, тогда значит лучше сделать целостность в этом случае?

#9 
Срыв покровов патриот29.10.23 07:09
NEW 29.10.23 07:09 
в ответ AlexNek 23.10.23 21:52, Последний раз изменено 29.10.23 14:27 (Срыв покровов)

какая связь между ДДД и проектированием базы данных?

Если БД не распределенная, какой воспалённый ум может посоветовать таблицу без PK?

#10 
Murr патриот29.10.23 10:28
Murr
NEW 29.10.23 10:28 
в ответ MrSanders 28.10.23 20:27

Но иногда надо тупо записать, даже если с ошибками

-----

Да почти всегда надо.. не всегда делают - ну так кто им буратно...

По поводу писать без кастомера... нее, пусть будет фейковый кастомер - его проще потом поменять/удалить, чем разбираться с кучей безкастомерных ордеров...

#11 
Murr патриот29.10.23 10:33
Murr
NEW 29.10.23 10:33 
в ответ Срыв покровов 29.10.23 07:09

Если БД к распределенная, какой послушный ю воспалённый ум

------

Мелкомягкий.

Один из вопросов на собеседовании - есть куча распределенных серверов на сетях с периодическими пропаданиями соединений. Как на них поместить и как с них получить актуальные данные?

#12 
AlexNek патриот29.10.23 14:22
AlexNek
NEW 29.10.23 14:22 
в ответ Срыв покровов 29.10.23 07:09
какая связь между ДДД и проектированием базы данных?

Агрегаты маппятся на базу, а не база на агрегаты. Так что по отдельности никак не получится и интересует на ПК, а ФК.

Проблема, в том что во всех примерах, что мне попались никакие ФК не делались и нигде никаких упоминаний не нашел.

Разве что domain mapping.

#13