Re[56]: ООП головного мозга
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.09.11 14:56
Оценка:
Здравствуйте, Enomay, Вы писали:

E>>>получили общую сумму покупок за последний месяц и передали доменной модели.

G>>Где получили? Кто получили?

E>тот, кто обращается к доменной модели.


E>>>так же эту сумму можно получить из объекта самого покупателя.

G>>Каким образом? Выполнить запрос к хранилищу? Покупатель будет иметь ссылку на repository?

E>покупатель будет сформирован с полным набором необходимых данных при помощи доменного сервиса.


Да, при помощи сервиса, а сущность "покупателя" будет DTO. Это уже похоже на нормальный дизайн.
А он соотвествует DDD?

G>>Или ты предложишь циклом ходить по orders, загружая всю историю заказов в память? и выполняя SELECT N+1


E>если доменная логика потребует проходиться циклом по ордерам, то так и будет.

E>и да, для этого необходимое кол-во ордеров будет загружено в память.
E>и да, вероятно будет select n+1.
E>это криминально? в бизнес приложениях — нет. в высоконагруженном сайте? возможно.

Значит DDD позволяет делать только тормозящее говно
Что и требовалось доказать.
Шучу конечно, но ощущение складывается именно такое.

E>>>всё зависит от организации модели.

G>>Ок, покажи как эффективно организовать модель в таком случае.

E>нужно исходить из задачи. а не абстрактного выдуманного примера.

Расчет скидки — не выдуманный пример.

E>и эффективная модель в каждом отдельном случаи будет различаться.

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

E>>>ты их не видишь. другие их видят. не заморачивайся. возможно это придет, со временем. а возможно и нет.

G>>Так ты их назови хотя бы, а то даже с этим проблемы возникают.
E>преимущества в организации слоя бизнес логики, который отражает действительную проблему.
Так в чем это преимущество?
Ты сейчас пытаешься мне показать в случая с бухгалтерией построение слоя бизнес-логики, который как раз действительные проблемы не отражает.

E>>>мы и говорим на одном языке с экспертами. о тех вещах, которые нас интересуют. и не говорим о тех, которые нас не интересуют.

G>>Тогда вы делаете программу, которая нужна вам, а не пользователям.
G>>А обычно наоборот, слушают заказчиков\экспертов\пользователей.
E>тебе так кажется.
Ну конечно, только мне кажется что сделать успешный продукт можно только учитывая пожелания пользователей.

E>>>DDD не имеет отношения к построению отчетов, точнее даже, обычных выборок.

G>>То есть не имеет отношение к домену (той самой предметной области о которой тебе скажут бухгалтеры).

E>отображение отчета какого либо отчета, совершенно никак не влияет на алгоритм расчета зарплат, под который мы делаем доменную модель, а значит, в данном случае, это нас не интересует.

А я не говорю про отображение, я говорю про получение данных. Баланс может и не отображаться, а сразу отправляться в налоговую.

E>>>ценность DDD в организации и построении бизнес логики.

G>>Так получение баланса и других данных для отчетов и есть та логика, которая нужна бизнесу. У тебя другое понимание бизнес-логики?
E>бизнесу нужна логика расчета данных, а их получение и отображение — это лишь следствие, и к логике никакого отношения уже не имеет.
Так я с этого и начал. Вот есть у бухгалтеров баланс, это не балансовая ведомость, а некоторые данные, соотвествующие определенным правилам. еще есть обороты, остатки — тоже наборы данных, формирующиеся по определенным правилам. Как и правильно отражать в программе с точки зрения DDD?
По сути они все являются выборками определенного вида.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.