powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / DDD разнесение кода логики по классам
25 сообщений из 169, страница 4 из 7
DDD разнесение кода логики по классам
    #39910783
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
love_bach
можешь выделить, что тебе особенно не понравилось, а как бы ты сделал?


В формате форума нет :)
Я бы код показал, если бы не NDA, поэтому могу только поделиться собственным опытом на конкретных примерах, но не в рамках целого проекта, это слишком затратно (
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910786
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
love_bach
можешь выделить, что тебе особенно не понравилось, а как бы ты сделал?


В формате форума нет :)
Я бы код показал, если бы не NDA, поэтому могу только поделиться собственным опытом на конкретных примерах, но не в рамках целого проекта, это слишком затратно (

Я же код не прошу, словами могешь обяснмть?ⁿ
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910815
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
skyANA
hVostt,

имхо люди хотят халявы, статейки с примером на пару экранов
а читать Гради Буча, Бертрана Майера, Мартина Фаулера, Эрика Эванса и др.
понимать когда и почему это всё придумывалось, как развивалась и как применяется сейчас
это же слишком сложно :)

список этих долбоебов слишком велик, а гарантий, что они там что то написали правильно - исчезающе мал
Критикуешь - предлагай.
Если сам не долбоеб :)
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910816
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
love_bach
skyANA
hVostt,

имхо люди хотят халявы, статейки с примером на пару экранов
а читать Гради Буча, Бертрана Майера, Мартина Фаулера, Эрика Эванса и др.
понимать когда и почему это всё придумывалось, как развивалась и как применяется сейчас
это же слишком сложно :)


золотые слова! хотим халявы!
есть какие-то более-менее приближенные к примеру комментарии?
Я сейчас в снегах Удмуртии, связь - говно :)
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910821
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910837
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
love_bach
Я же код не прошу, словами могешь обяснмть?ⁿ


Всё о чём я уже говорил.
Убрать логику из домена.
Изменение в домене должно происходить исключительно в командах.
Команды не должны сохранять изменения, это область ответственности UOW и клиента, инициирующего изменения.
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910840
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
ViPRos
пропущено...

список этих долбоебов слишком велик, а гарантий, что они там что то написали правильно - исчезающе мал
Критикуешь - предлагай.
Если сам не долбоеб :)

посыл был в том что - предлагающие долбоебы
остальные - верующие
ни один пидер не может ограничить ни один контекст, ни один агрегат не сможет агрегировать всех составляющих, любой компонент любого агрегата норовить стать всеобъемлющим,...
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910841
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
love_bach
Я же код не прошу, словами могешь обяснмть?ⁿ


Всё о чём я уже говорил.
Убрать логику из домена.
Изменение в домене должно происходить исключительно в командах.
Команды не должны сохранять изменения, это область ответственности UOW и клиента, инициирующего изменения.

т.е. никакого "домена" и нет, а есть схема, и общесхемные команды
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910852
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
посыл был в том что - предлагающие долбоебы


Почему у тебя такое сложилось мнение?

ViPRos
остальные - верующие


Абсолютная вера однозначно плохо.


ViPRos
ни один пидер не может ограничить ни один контекст, ни один агрегат не сможет агрегировать всех составляющих, любой компонент любого агрегата норовить стать всеобъемлющим,...


Глупости говоришь.
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910853
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
т.е. никакого "домена" и нет, а есть схема, и общесхемные команды


Проблема в некорректном применении ООП.
DDD и ООП -- вещи ортогональные.

Ничего в DDD не сказано о том, как именно его нужно реализовывать. Что это обязательно должно быть сделано на объектах, используя инкапсуляцию, наследование, полиформизм, что называется "из коробки".

На мой взгляд, это биг мистейк.
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910858
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
ViPRos
т.е. никакого "домена" и нет, а есть схема, и общесхемные команды


Проблема в некорректном применении ООП.
DDD и ООП -- вещи ортогональные.

Ничего в DDD не сказано о том, как именно его нужно реализовывать. Что это обязательно должно быть сделано на объектах, используя инкапсуляцию, наследование, полиформизм, что называется "из коробки".

На мой взгляд, это биг мистейк.


это одно и то же (фуфло)
просто немного ослаблены требования
ты уже должен был понять, что невозможно определить контекст где однозначно определен хоть что либо во времени
только прошлое может быть описано
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910860
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
это одно и то же (фуфло)
просто немного ослаблены требования
ты уже должен был понять, что невозможно определить контекст где однозначно определен хоть что либо во времени
только прошлое может быть описано


Очень даже возможно.
Не на всю жизнь, но на текущий момент.
Понимая, что всё меняется, код должен быть refactoring-ready.

Когда видишь такую реализацию DDD, что в ней всё прибито гвоздями, и вообще проще переписать, чем исправить, то вовсе не обязательно DDD плохой, а те, кто его придумал "пидарасы" :)

Ограниченный контекст -- это про "разделяй и властвуй".
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910872
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
love_bach

Теперь первоначальный вопрос уточню так:

1) если есть полная уверенность, что можем инкапсулировать "чистую" логика домена, то размещаем её в корне агрегата?
2) если что-то сильно выйдет за рамки 1) - рефакторим - выносим в команды, все-равно деваться некуда, и рефакторинг это не исправление "ошибок", это реакция на новые требования?
3) но, если все-равно есть ненулевая вероятность 2), может, ну его нафиг 1) и сразу 2)?

1) В корне агрегата размещается только логика общая для агрегата, остальная логика размещается в сущностях
2) Это нормальная ситуация, возникающая регулярно. Рефакторинг производится если новая логика лучше ложится на конкретную сущность/агрегат, а та, что не ложится - отправляется в сервисы
3) Куда "нафиг"? Сразу в процедурную лапшу? Вас проклянут те, кто будет это потом поддерживать
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910873
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
skyANA
пропущено...
Критикуешь - предлагай.
Если сам не долбоеб :)

посыл был в том что - предлагающие долбоебы
остальные - верующие
ни один пидер не может ограничить ни один контекст, ни один агрегат не сможет агрегировать всех составляющих, любой компонент любого агрегата норовить стать всеобъемлющим,...
Глупости какие-то.
Про DDD и ограниченный (bounded) контекст явно не слышал, на практике применить не пробовал, а поносишь.
Спрашивается в чем причина? В том что тебя сливают на пенсию?
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910874
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
hVostt
пропущено...


Проблема в некорректном применении ООП.
DDD и ООП -- вещи ортогональные.

Ничего в DDD не сказано о том, как именно его нужно реализовывать. Что это обязательно должно быть сделано на объектах, используя инкапсуляцию, наследование, полиформизм, что называется "из коробки".

На мой взгляд, это биг мистейк.


это одно и то же (фуфло)
просто немного ослаблены требования
ты уже должен был понять, что невозможно определить контекст где однозначно определен хоть что либо во времени
только прошлое может быть описано
Всё возможно, правда не один а множество ограниченных контекстов.
Event Storming тебе в помощь.
Глянь мастер-классы тех же 2gis.
Они, кстати, придерживаются несколько другим взгляда на DDD, чем Эванс (это про верующих).
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910875
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
hVostt
пропущено...


Всё о чём я уже говорил.
Убрать логику из домена.
Изменение в домене должно происходить исключительно в командах.
Команды не должны сохранять изменения, это область ответственности UOW и клиента, инициирующего изменения.

т.е. никакого "домена" и нет, а есть схема, и общесхемные команды

С такими высказываниями он нам тут про верующих и долбоебов затирает )))
ИМХО ты и есть тот, о ком пишешь: яростно отрицаешь чужое и проповедуешь своё.
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910885
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
ViPRos
пропущено...

посыл был в том что - предлагающие долбоебы
остальные - верующие
ни один пидер не может ограничить ни один контекст, ни один агрегат не сможет агрегировать всех составляющих, любой компонент любого агрегата норовить стать всеобъемлющим,...
Глупости какие-то.
Про DDD и ограниченный (bounded) контекст явно не слышал, на практике применить не пробовал, а поносишь.
Спрашивается в чем причина? В том что тебя сливают на пенсию?

ты как был неучем, так и остался, хотя прочитал кажись всех долбоебов на свете
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910886
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
ViPRos
пропущено...

т.е. никакого "домена" и нет, а есть схема, и общесхемные команды

С такими высказываниями он нам тут про верующих и долбоебов затирает )))
ИМХО ты и есть тот, о ком пишешь: яростно отрицаешь чужое и проповедуешь своё.

чудик, если чек не понимает чей этот метод - агрегата, сущности или инфраструктуры, то скорее всего все эти агрегаты и сущности надуманы (текущий уровень понимания предметной области)
В нормальных системах главное - схема.
Агрегаты и независимые сущности вычислимы.
Контексты (кластеры, подсистемы) вычислимы.
Инфраструктурные методы (включая сериализации, десериализации,...) общесхемны и т.д.
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910895
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
skyANA
пропущено...
Глупости какие-то.
Про DDD и ограниченный (bounded) контекст явно не слышал, на практике применить не пробовал, а поносишь.
Спрашивается в чем причина? В том что тебя сливают на пенсию?

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

Критикуешь - предлагай.
В последнее время ты только говном исходишь.

Долбоебы, неучи... Кого ты на нас проецируешь? Своих коллег, что тебя моложе?
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910900
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt

Если у вас архитектура строится на CQRS, значит любые изменения данных системы должны быть в командах. Если бы в приведённом коде обработчика события был бы вызов команды, было бы ок.

У вас в голове каша. Слово Command в CQRS не означает, что нужно в буквальном смысле создавать классы команд и только из них производить изменения. В данном примере изменения в агрегат вносятся как из хэндлеров команд, так и из хэндлеров событий, все логично и полностью соответствует CQRS
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910923
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
skyANA
пропущено...

С такими высказываниями он нам тут про верующих и долбоебов затирает )))
ИМХО ты и есть тот, о ком пишешь: яростно отрицаешь чужое и проповедуешь своё.

чудик, если чек не понимает чей этот метод - агрегата, сущности или инфраструктуры, то скорее всего все эти агрегаты и сущности надуманы (текущий уровень понимания предметной области)
В нормальных системах главное - схема.
Агрегаты и независимые сущности вычислимы.
Контексты (кластеры, подсистемы) вычислимы.
Инфраструктурные методы (включая сериализации, десериализации,...) общесхемны и т.д.


Какой-то 1С или Акцесс сразу представил. И как там все "вычисляется"
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910968
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerS
полностью соответствует CQRS

...соответствует "по Фаулеру"?
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39910983
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
love_bach

Какой-то 1С или Акцесс сразу представил. И как там все "вычисляется"

Не знаю, что там и как вычисляется, а так алгоритм простой.
Граф связей сущностей анализируется, выбираются терминальные узлы, рассматриваются характер связей (разноглубинность и т.д.) ТУ и на основе этого выделяются агрегаты (макротипы) и/или независимые общесхемные узлы (это в обычном понимании "справочники").
Макротипы анализируются на предмет общих связей и кластеризуюутся в подсистемы.
На основе этой информации генерируется динамическое меню.

В системе уже имеются команды типа -
Создать форму для макротипа
Добавить элемент в макротип
Удалить элемент из макротипа
Сохранить изменения
...
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39911002
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerS
hVostt

Если у вас архитектура строится на CQRS, значит любые изменения данных системы должны быть в командах. Если бы в приведённом коде обработчика события был бы вызов команды, было бы ок.

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


При чём тут буквальный смысл? Понятно, что исполняет команду хендлер.

Изменения вносятся не в командах, всё уже не соответствует. Зачем тогда команды? Вносите их где угодно. Получили репозиторий, и делайте своё грязное дело. Зачем вам CQRS, не пойму?
...
Рейтинг: 0 / 0
DDD разнесение кода логики по классам
    #39911003
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
Не знаю, что там и как вычисляется, а так алгоритм простой.
Граф связей сущностей анализируется, выбираются терминальные узлы, рассматриваются характер связей (разноглубинность и т.д.) ТУ и на основе этого выделяются агрегаты (макротипы) и/или независимые общесхемные узлы (это в обычном понимании "справочники").
Макротипы анализируются на предмет общих связей и кластеризуюутся в подсистемы.
На основе этой информации генерируется динамическое меню.

В системе уже имеются команды типа -
Создать форму для макротипа
Добавить элемент в макротип
Удалить элемент из макротипа
Сохранить изменения
...


Чёт уже какая-то жесть пошла. Ну тогда иди до конца, пусть это чудо само логику вычисляет и вообще работу работает :))
...
Рейтинг: 0 / 0
25 сообщений из 169, страница 4 из 7
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / DDD разнесение кода логики по классам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]