А как же реализовывать асинхронщину? Слашал, в доменных моделях ей не место. Но вот в примере есть проверка, что блюда с таким именем еще нет, у нас нет кнокретной реализации, просто иньерфнйс исппользуется. Но в конкретной реализации, когда inmemorystogare заменится на db, может понадобиться сделать ассинхронный запрос к хранилищу. И как это будет выглядеть?
@АлександрК-у6юАй бұрын
46:50 странное замечание про накладность собрать людей на 30 минут или час. Если что, переделка чего-либо на каждом последующем этапе кратно дороже предыдущего. Лучше собрать экспертов предметной области на этапе проектирования, чем переделывать додумки разработчиков после внедрения.
@DDDevotionАй бұрын
«Дорогие» встречи - частая страшилка менеджеров.
@mexvision-35565 ай бұрын
Обрежьте "ААААААААААААААААААААААА". Спикеры-хуикеры. Э, А, ЭМ. Блять, как это слушать?
@petrplotnikov43076 ай бұрын
для меня самое сложное понять как выделить бизнес правила, должны ли мы сами их додумывать, или это просто описания требований заказчика?
@EgorUshakov7 ай бұрын
2:25 А почему RabbitMQ выковыриваете?
@airguy59642 ай бұрын
Redis выковыривают а не RabbitMQ
@koyard228 ай бұрын
На 1:35:55 запросы в базу в цикле делаются. Невероятно чистый код! Превосходная производительность! Браво, пишите ёще!
@thegeneralopinion97138 ай бұрын
47:26 - парень Евгений говорит, что ничего страшного нет, чтобы расширить интерфейс ради 1 объекта, хотя другим оно не надо --> ничего страшного. Как ничего страшного? А внести изменения в конструкторы во всех местах? Или в сигнатуры методов. Что-то непонятно.
@TbIPDblM8 ай бұрын
Интересное обобщение, но не на все случаи жизни)
@delifeful8 ай бұрын
чувак просто прочитал книгу и ее пересказал - ничего нового.
@p.polunin9 ай бұрын
Какой молодец! Создал фреймворк, молодец! Только где его посмотреть?
@GamDevRus10 ай бұрын
папка в проекте это не ген план. ген план это диаграмvа use case, из которой например и будет понятно назначение приложения :)
@DimaTiunov Жыл бұрын
Звук это инфраструктурный слой? ЕРЕТИК
@aedificaspace1398 Жыл бұрын
Я услышал много про чистую архитектуру и почти ничего про DDD. Такое чувство, что спикеры пытаются подсунуть чистую архитектуру под видом DDD.
@elsalvadore7063 Жыл бұрын
Чушь, до конца не досмотрел не хватило терпения вода какая-то
@ВасилийСоло Жыл бұрын
У нас не очень много времени потому потратим 30 минут что бы посмотреть на дибильные вопросы результатом которых, о боже, не вероятно, домен является самым важным. РАНЬШЕ думал что самое главное это фреймворк которые раз в год выходит новый
@СтаниславСедов-и4ж Жыл бұрын
Некорректная связь между ген. планом и структурой каталогов приложения. Вместо этого стоило бы использовать UML диаграммы тогда уж.
@SbWereWolf Жыл бұрын
интересно послушать, спасибо
@АлександрРезов-ь3ф Жыл бұрын
Шикарная подача
@SbWereWolf Жыл бұрын
очень много здравый мыслей, не в части программирования, а в части фактической пользы от DDD для самого бизнеса, это хорошо что так много внимания уделили вопросу от том как этот подход продать бизнесу, и в чём его польза в действительности, не в том что это красиво с точки зрения логики, а в том что это делает предсказуемой внесение изменений в работу приложения, действительно, за "линейное время"
@alinafattakhova9610 Жыл бұрын
Сергею огромное спасибо🙏
@СергейБуслюк-ь3и Жыл бұрын
когда показывали класс Menu, упомянули поле version, которое используется для оптимистической блокировки. И тут у меня сразу дисонанс, потому что это поле явно не относится бизнес-домену Menu, а относится к решению проблемы конкуретности в бд. Это в целом норм, или не норм? Или приходится идти на такого рода уступки? Если это действительно проблема, то можно ли ее решить?
@DDDevotion Жыл бұрын
Иногда технические вещи (гуиды, версии) протекают в домен. Как по мне - не стоит с этим перебарщивать, но и избавляться во что бы то ни стало не надо, особенно если это некий единный подход в проекте.
@arbinada Жыл бұрын
Все-таки затянуто, хотелось бы пободрее и повеселее :) Пример, видимо, должен поразить всех тех, кто еще подумывает о чистоте архитектуры. Если для трех таблиц и пяти экранных форм нужно сооружать вот это вот всё, то что же нас ждет в действительно сложной многодоменной ERP?! Теперь о насущном. DDD заточен под имитационное моделирование (объекты активны, обладают поведением, а о "персистентности" можно вообще не думать). Энтерпрайз - это автоматизация информационных систем (сущности пассивны, но почти все долгохранимы, ими манипулируют люди через процессы). То есть подход должен был бы быть с другого конца (привет SADT и IDEF0). Ну и очевидное: все эти getByXXX работают только для простых CRUD-ов. Первый же dashboard с десятком панелей уровня "топ 10 заказов за 5 дней по товарам группы скоропортящихся среди клиентов с оборотом более 1М в месяц" снесет абстракцию к чертовой бабушке, как неадекватную. Рассуждения про СУБД, как про устройство ввода-вывода (в котором, однако, нужно дублировать "констрейнты" домена sic!) несколько забавны, если знать, что уровень абстракции объектной и реляционной моделей одинаков. В общем, как и другие люди 25 лет назад вы снова приводите к выводу, что ООП в 1960-е годы не зря появилось для решения задач моделирования, а промышленные СУБД в те же годы (а не в 80-е, как авторы ошибочно дезинформировали слушателя) - для автоматизации ИС. Выводов не будет, спасибо за обеденное видео.
@bananasba Жыл бұрын
Дырявые абстракции и карго-культ. Это та же анемичная модель, но присыпаная сахарком. И чем сложнее будет становится домен, тем быстрее это все выродится в бесформенную кучу сервисов, интерфейсов, экстеншен методов и тп. - все то, что как раз и характеризует анемичную модель, но тут еще надо будет доплатить. Все "типа" ддд примеры осиливают максимум уровень "запускается" и как правило не содержат в себе ни одного сложного юзкейса.
@DDDevotion Жыл бұрын
И как тогда лучше?
@valeriyaleksandrovich2707 Жыл бұрын
Херню полную несут. После первых 10 мин начало тошнить.
@asbestoable Жыл бұрын
очень признателен Евгению за эту сессию. но, если честно, очень сложно слушать, вы уж не обижайтесь. Я понимаю, материал был как то подготовлен. Но создалось впечатление что вы его написали, потеряли конспект и на ходу вспоминаете дословно что там было написано. А в целом информация интересная, спасибо
@maksimgridin9322 Жыл бұрын
В отличии от вашего примера, в реальном мире агрегат не накачивает сам себе колеса. Вы передаете этот агрегат в сервис, сервис накачивает колеса и возвращает измененный агрегат вам. В программировании такое естественное поведение отражает анемичная доменная модель, которую вы не заслуженно хейтите.
@DDDevotion Жыл бұрын
Мне кажется вполне заслужено и не я один)
@DenisB-d5f Жыл бұрын
Структура папок и файлов - это не чертежи, это уже реализация. "Чертежи" приложения - это какие-нибудь UML-схемки, диаграмки. А из них уже более чем понятно что за приложение. Мысль годная, сравнение - бестолковое.
@aka-spy Жыл бұрын
Презентация по ссылке больше не доступна, перезалейте, пожалуйста.
@gradeaification Жыл бұрын
Микрософт из-за подозрительной активности залочил мой акк, поправил, должно открываться. Спасибо)
@krypteral Жыл бұрын
А для автора русский язык родной? Очень тяжело получается подбирать слова и формулировать мысли
@gradeaification Жыл бұрын
Ja-ja, exactly
@SklerozRu Жыл бұрын
На 11:45 заслуженный лайк за отличное сравнение. Мне очень понравилось, о многом задумался.
@smartphone64982 жыл бұрын
Топ-контент! С примерами на практике - всё как положено.
@smartphone64982 жыл бұрын
Как же в людях сидит вот это вот "тратить время руководителей". А кто вам ещё кроме них расскажет, как бизнес-то работает? Если и они не знают - у меня для вас две новости, хорошая и плохая. Плохая - вы напрасно тратите время. Хорошая - понимание этого открывает для вас окно возможностей. Подумайте о своём времени уже наконец.
@smartphone64982 жыл бұрын
Контент - годнота! Да ещё с такими примерами, где прям контексты - по каталогам!
@smartphone64982 жыл бұрын
Вопросы - говно)) Никто из вопрошающих в суть так и не въехал 😁
@UNSMITH22 жыл бұрын
Сергей какой-то мудак просто)
@zeroidandroid2 жыл бұрын
Не так всё однозначно не слайде "Чем придётся заплатить", имхо, ключевой момент всей этой чистой архитектуры. Тк в реальном проекте так и выходит: тут не1 однозначно, там не однозначно, 10 раз не однозначно, и вот мы уже получили винегрет из "слоистой" и чистой архитектуры... Пол года без БД? Да вы о чем? Нас после этого всех разгонят. Все проекты делаются по принципу "нужно было ещё вчера", если ты через неделю не покажешь работающую админку заказчику -- будешь потом на собеседовании рассказывать про чистую архитектуру и пол года без бд! 🤣🤣🤣 я конечно утрирую, но и вы тут перегнули палку, надо было сценарий лучше прописать ;) Пример с театром -- сильно надуманный, немного портит впечатление, сразу хочется поспорить :) А так видео хорошее, спасибо! Есть пара новых моментов о чем подумать :) Правда лучше смотреть на скорости 1,5х :))))
@DDDevotion2 жыл бұрын
Один из законов разработки: Everything in software architecture is a trade-off)
@bek150719912 жыл бұрын
Спасибо, я думаю надо было взять пример который бы все тонкости затрагивал. Ждем новый мастер класс версии 2 😅, где раскрываются все вопросы 😊
@DDDevotion2 жыл бұрын
Только, думаю, что такой мастер-класс будет идти несколько дней. Брандолини такие проводит 😅
@ivangorsky75372 жыл бұрын
Огромное спасибо! Подача - огонь.
@alexeym68302 жыл бұрын
отличная идея! а как секция сценарии использования выглядят?
@alexeym68302 жыл бұрын
шина достает агрегаты?
@alexeym68302 жыл бұрын
объекты значения можно писать в БД как отдельный тип данных, doctrine позволяет такое
@dlcbook2 жыл бұрын
Опа, Бухаров, а нам не скинул видос -_-
@andreyyagovkin39452 жыл бұрын
Спасибо, великолепно!🎉
@ИванНикитин-ч7б2 жыл бұрын
Чем дольше смотришь этот ролик, тем чаще вспоминаешь, как он кинотеатр просто театром называл в начале.
@taksed02 жыл бұрын
Очень странно сравнивать структуру проекта и строительный чертеж. Я думаю, если бы посмотрели на файловую структуру проекта, вы бы тоже ничего не поняли. Правильно в данном случае было бы смотреть на архитектурные документы и диаграммы. А вот там бы как раз все было бы понятно. Понятно, о чем идет речь, но аналогия под сильным воздействием литературной гиперболы.
@alexanderkiselev4022 жыл бұрын
Я прям плакать начинаю, когда представляю длину файла UseCaseConfiguration.kt для реального ентерпрайс проекта, в котором хотя бы 100+ безнес задач. ))))
@ВладимирАкимов-х5х2 жыл бұрын
просто примеры, никаких конкретных объяснений сущностям и почему именно так, базовые знания
@ВладимирАкимов-х5х2 жыл бұрын
Очень мало полезной информации про Event Storming, все остальное вода, не тратьте время
@-dubok-2 жыл бұрын
Ну ты и дундук! Тут всё на практике показано - что может быть лучше?
@ВладимирАкимов-х5х2 жыл бұрын
ты видимо не смотрел видео
@-dubok-2 жыл бұрын
@@ВладимирАкимов-х5х как раз-таки полностью посмотрел. У меня было представление об Event Storming'е, но хотелось на практике посмотреть, потому что везде одна лишь теория да вода. А тут всё показано на реальном примере.
@zigzag23412 жыл бұрын
И вот например надо с фронта указать какой entity graph использовать чтобы вытянуть сущность, не писать же на каждый вариант find по методу ? У нас сущность мапится в дто, и лези поля в дто будут нулами, что удобно, не режется производительность лишний раз. Но это уже какая-то не очень чистая архитектура получается, когда приходится графы так передавать. И таких моментов много, что нивелирует чистоту впринципе
@alexkluev561 Жыл бұрын
для этих сценариев просто идеально подходит GraphQL (использовали на проде и это было шикарно)
@zigzag23412 жыл бұрын
Есть подозрение, что написав проект без чистой архитектуры, а с обычной продуманной архитектурой разницы будет ноль, просто программистам скучно. Если бы этот подход был лучше стандартного анемичного например, то он бы уже стал стандартом, как реактивное программирование на js например.
@alexkluev561 Жыл бұрын
>просто программистам скучно. В каком смысле скучно? Скучно написать продуманную архитектуру?