|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
Как-то не интуитивно, часть логики в корне агрегации, часть не там? А как там разруливается, например, что есть уже такой агрегат? Уникальность в БД. Где это должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 21:00 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
love_bach, логики агрегатах быть не должно. ни в корне, ни в сущностях. уникальность DDD не поддерживает, она описывается отдельно, вариантов масса. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 22:03 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
hVostt love_bach, логики агрегатах быть не должно. ни в корне, ни в сущностях. уникальность DDD не поддерживает, она описывается отдельно, вариантов масса. Насчёт первого - поясни. Также даже методы предполагаются ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 22:15 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
love_bach, DDD не описывает где вам хранить вашу логику но для DDD лучше всего подходит паттерн CQRS вы конечно можете логику разместить в классах, которые моделируют сущности и агрегаты практика показывает, что такой подход неэффективен используя CQRS, любое изменение производится с помощью команд с помощью отдельных запросов вы можете вытаскивать проекции данных, но не сами сущности или агрегаты по сути, единственный способ достать агрегат, это вытащить его по ID единственный способ создать, изменить или удалить агрегат, это выполнить команду команда это не любая логика вообще, это конкретно внесение изменений в систему бизнес-логика при этом размещается в службах и сервисах ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 22:23 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
hVostt love_bach, DDD не описывает где вам хранить вашу логику но для DDD лучше всего подходит паттерн CQRS вы конечно можете логику разместить в классах, которые моделируют сущности и агрегаты практика показывает, что такой подход неэффективен используя CQRS, любое изменение производится с помощью команд с помощью отдельных запросов вы можете вытаскивать проекции данных, но не сами сущности или агрегаты по сути, единственный способ достать агрегат, это вытащить его по ID единственный способ создать, изменить или удалить агрегат, это выполнить команду команда это не любая логика вообще, это конкретно внесение изменений в систему бизнес-логика при этом размещается в службах и сервисах спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2019, 07:55 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
hVostt DDD не описывает где вам хранить вашу логику но для DDD лучше всего подходит паттерн CQRS вы конечно можете логику разместить в классах, которые моделируют сущности и агрегаты практика показывает, что такой подход неэффективен используя CQRS, любое изменение производится с помощью команд с помощью отдельных запросов вы можете вытаскивать проекции данных, но не сами сущности или агрегаты по сути, единственный способ достать агрегат, это вытащить его по ID единственный способ создать, изменить или удалить агрегат, это выполнить команду команда это не любая логика вообще, это конкретно внесение изменений в систему бизнес-логика при этом размещается в службах и сервисах очередной поток сознания от местного "эксперда", нагугленные умные слова сваленные в кучу без малейшей попытки осмысления и опыта практического использования CQRS напрямую к DDD вообще не относится, это разные вещи и идея использовать CQRS только потому, что используется DDD может родится только в воспаленном гуглом уме. CQRS нужен когда модели для чтения начинают разнится с моделями для изменения, также изоляция чтения позволяет маштабировать ее независимо от записи и прочее, все это обусловлено требованиями к конкретной системе, а никак не использованием DDD А бизнес-логика в классическом DDD как раз расположена в сущностях, вынесение ее в отдельные классы сервисов будет уже называться анемичной моделью и не являтся DDD как таковой. "Практика" у него показывает что это неэффективно Для фриланс интернет-магазина по продаже валенок или студенческого проекта - возможно, а в коммерческих проектах люди сначала анализируют требования к системе, а уже потом принимают решения love_bachКак-то не интуитивно, часть логики в корне агрегации, часть не там? А как там разруливается, например, что есть уже такой агрегат? Уникальность в БД. Где это должно быть? за уникальность отвечает владелец данных (т.е. база), к функциям DDD это не относится ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 03:01 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford А бизнес-логика в классическом DDD как раз расположена в сущностях Пруф будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 03:51 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford Я понимаю, что у вас щас возраст такой, прыщи лезут и мысли всякие неумные, напыщенность как деревенского петуха и упёртость как у быка. Поэтому не обижаюсь, пруф только дайте на ваше интересное утверждение. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 03:53 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
Кому действительно интересно как используется CQRS вместе с DDD, можете ознакомиться со следующими материалами: Применение в микрослужбе упрощенных шаблонов CQRS и DDD Сайт, посвящённый этой теме Довольно активный форум От себя же, не рекомендую делать вот так: stenford А бизнес-логика в классическом DDD как раз расположена в сущностях, вынесение ее в отдельные классы сервисов будет уже называться анемичной моделью и не являтся DDD как таковой. Потому что даже такое поделие, как stenford фриланс интернет-магазина по продаже валенок или студенческого проекта обойдётся вам дорого, либо это будет лишь наивным намёком на то, что авторы пытались в DDD, но не коня корм. Но этого хватает, как видно, чтобы включить гонор на все 146% ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 04:04 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
Вспомнил ещё есть интересная статья на эту тему, нашёл перевод на хабре Анемичная модель предметной области — не анти-шаблон, а архитектура по принципам SOLID Вообще, с тех пор как многие гуру топили за следование принципам ООП, утекло много воды, сейчас развитие идёт в сторону функциональщины, требования к SOLID усилились и кажется люди даже начали понимать что это такое и зачем оно нужно. Что вообще-то нисколько не умаляет и не противоречит ООП. Просто его понимали и готовили неправильно. Основная и ключевая ошибка состоит в том, что под Объектами в ООП понимались объекты реального мира. Откройте любую книжку времён 2000-х. Там обязательно будут примеры с животными или геометрическими фигурами. Но ООП это не про реальный мир. Он для этого вообще не подходит. Совершенно. Соответственно, пытаться инкапсулировать предметную область сущности/агрегата в одном месте (в классе) -- это неправильно. Более того, это очень плохо, и ведёт к печальным последствиям. Сегодня подобный подход можно приравнять к говнокоду. Потому что нарушает SOLID, плохо тестируется, таки получает прямую зависимость не только от способа хранения, но и самих языковых средств. Называть модель предметной области анемичной в сущности неправильно. Никакой анемии нет, логики много, она часто меняется, и не редко пересекает Bounded Context, -- ну вот такой он суровый реальный мир. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:11 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
hVostt Пруф будет? Читай базовую теорию , потом будешь делиться опытом своего интернет магазина по продаже валенок ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:13 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford hVostt Пруф будет? Читай базовую теорию , потом будешь делиться опытом своего интернет магазина по продаже валенок и где тут пруф-то? дядька написал это в 2003 году, 17 лет назад собственно, опровержение этой же статьи выше опубликовал, хотя оно не требуется давно уже очевидно, что рич модель не жизнеспособна, ни в DDD ни в чём-либо ещё ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:19 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
hVostt Вспомнил ещё есть интересная статья на эту тему, нашёл перевод на хабре Анемичная модель предметной области — не анти-шаблон, а архитектура по принципам SOLID Вообще, с тех пор как многие гуру топили за следование принципам ООП, утекло много воды, сейчас развитие идёт в сторону функциональщины, требования к SOLID усилились и кажется люди даже начали понимать что это такое и зачем оно нужно. о, гляжу нагугл что такое анемика, целый час тебе на потребовался hVostt Что вообще-то нисколько не умаляет и не противоречит ООП. Просто его понимали и готовили неправильно. Основная и ключевая ошибка состоит в том, что под Объектами в ООП понимались объекты реального мира. Откройте любую книжку времён 2000-х. Там обязательно будут примеры с животными или геометрическими фигурами. Но ООП это не про реальный мир. Он для этого вообще не подходит. Совершенно. Да, Эрик Эванс и Мартин Фаулер все делали неправильно, а вот млять хвост тут оказывается авторитет в мире ООП ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:20 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford Да, Эрик Эванс и Мартин Фаулер все делали неправильно, а вот млять хвост тут оказывается авторитет в мире ООП всё они делают правильно пишут статьи, исследуют, многие заметки успели устареть а ты нет, мало того, что несёшь ахинею так ещё и единственный "пруф" нагуглил, это статья 17-летней давности, в которой автор обижается, что люди не хотят делать DDD, как ему кажется правильно, но не примеров, ни доказательств успешности такого подхода до сих нет ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:25 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
hVostt и где тут пруф-то? дядька написал это в 2003 году, 17 лет назад собственно, опровержение этой же статьи выше опубликовал, хотя оно не требуется давно уже очевидно, что рич модель не жизнеспособна, ни в DDD ни в чём-либо ещё Опровержение? Чей-то бложик? И мой поинт кстати был совсем не в том, что правильно, а что нет, а в том, что классический ООП именно с рич моделью, если у кого-то не получается его готовить - то так и надо говорить, либо по крайней мере в топике DDD упоминать что следуешь секте анемиков, а не говоришь про DDD как таковое ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:27 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford, да, кстати, поржал про "базовую теорию" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:27 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford Опровержение? Чей-то бложик? И мой поинт кстати был совсем не в том, что правильно, а что нет, а в том, что классический ООП именно с рич моделью, если у кого-то не получается его готовить - то так и надо говорить, либо по крайней мере в топике DDD упоминать что следуешь секте анемиков, а не говоришь про DDD как таковое с тобой как с табуреткой разговаривать какая ещё секта? разумные мысли от тебя вообще сегодня будут? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:30 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford что классический ООП именно с рич моделью откуда вообще у тебя в голове этот мусор? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:35 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
hVostt да, кстати, поржал про "базовую теорию" Ясно, того-же Эрика Эванса значит не читал, образование в гугле получил по подобным бложикам, что в принципе прекрасно видно по уровню твоих познаний, и для тех кто в танке повторю - это и есть классический DDD. Анемика родилась примерно в те-же времена, и так никуда и не взлетела за пределами холиваров и форумских дурачков типа тебя, которые вычитав новое слово бросаются его имплементировать в свой магазинчик. ООП устарело у него ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:37 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford, Выраженное понятие может родилось. Самой "анемике" ровно столько же, сколько существует разработка ПО вообще. Эрик Эванс где говорил, что логика DDD должно быть выражено в классах сущностей и полностью инкапсулировать там логику? Каким образом вынесение логики в службы противоречит ООП, DDD, Фаулеру или Эвансу? Мне пока понятно одно, ты пытаешься что-то сказать, но выразить это разумными словами не можешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:49 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford форумских дурачков типа тебя, которые вычитав новое слово бросаются его имплементировать в свой магазинчик Видимо у тебя какое-то заболевание. В чём-то разобраться и предметно подискутировать тебе не интересно, основная цель, мелко подобосрать. Зачем тебе это, ребёнок? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 05:55 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
hVostt Выраженное понятие может родилось. Самой "анемике" ровно столько же, сколько существует разработка ПО вообще. Эрик Эванс где говорил, что логика DDD должно быть выражено в классах сущностей и полностью инкапсулировать там логику? Каким образом вынесение логики в службы противоречит ООП, DDD, Фаулеру или Эвансу? ты ссылку которую я дал прочитал вообще? Там текста не так и много, все прекрасно видно кто и что говорил. Переведи в гугле если английский не понимаешь ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 06:18 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford ты ссылку которую я дал прочитал вообще? Там текста не так и много, все прекрасно видно кто и что говорил. Переведи в гугле если английский не понимаешь Я её читал ещё когда ты под стол пешком ходил. Значит эта статья и есть тот догмат, на котором опирается твой выбор для архитектуры? Или просто это тупо всё, что ты нагуглил? Если так, на каком основании из тебя так мощно говно потекло? Что с тобой не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 06:41 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
hVostt Я её читал ещё когда ты под стол пешком ходил. Значит эта статья и есть тот догмат, на котором опирается твой выбор для архитектуры? Или просто это тупо всё, что ты нагуглил? Если так, на каком основании из тебя так мощно говно потекло? Что с тобой не так? ух ну ты и тупой, на твой вопрос "Эрик Эванс где говорил, что логика DDD должно быть выражено в классах сущностей" там есть прямые цитаты от Эванса где это написано, плюс разжевано Фаулером, если даже в такой форме до тебя это не доходит, то подобную узколобость даже лоботомией вылечить уже нельзя ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 07:27 |
|
DDD разнесение кода логики по классам
|
|||
---|---|---|---|
#18+
stenford ух ну ты и тупой, на твой вопрос "Эрик Эванс где говорил, что логика DDD должно быть выражено в классах сущностей" там есть прямые цитаты от Эванса где это написано, плюс разжевано Фаулером, если даже в такой форме до тебя это не доходит, то подобную узколобость даже лоботомией вылечить уже нельзя Эрик говорит про слои (или уровни) архитектуры, а не про ООП или классы. В его книге об этом чётко и подробно расписано. stenford подобную узколобость даже лоботомией вылечить уже нельзя Ты в реале такое же упоротое быдло, или только тут так себя по-свински ведёшь? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 07:52 |
|
|
start [/forum/topic.php?fid=18&msg=39910388&tid=1354817]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 296ms |
total: | 423ms |
0 / 0 |