powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как вы избегаете anemic model в ef
25 сообщений из 40, страница 1 из 2
как вы избегаете anemic model в ef
    #38720802
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все инжектите или все-же через локатор?
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720807
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.,

а как anemic model или ее избегание связано с DI или Service Locator?
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720818
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchDenis.,

а как anemic model или ее избегание связано с DI или Service Locator?
это говорит о том, что вы ее даже не пытались избегать)
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720819
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.,

А зачем избегать?
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720820
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustas,

ну представим случай, что бл настолько сложна и изменчива что смысл имеет
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720822
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.,

а с чего ты взял что в этом случае имеет смысл?
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720823
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustas,

опыт подсказывает
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720830
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.,

Какой? Приведи конкретный пример.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720834
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustas,
пример чего? отличия ооп от процедурнго программировния?
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720836
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustas,
у тебя бл где живет? В батонклике? В менеджере\хелпере\контроллере? Или в моделе? А если в моделе как ты ей скармливаешь сервисы?
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720838
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.,

конечно в отдельных классах. я не называю их менеджерами или хелперами, это мешает читаемости. В модель пихать БЛ - плохая идея, ибо нужно загружать целые объекты на каждый чих, а это тормозит. У меня 90% запросов используют проекции.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38720839
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.gandjustas,
пример чего? отличия ооп от процедурнго программировния?
Нет. Пример того, чем мешает анемик при сложной и изменчивой логике.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721183
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.,

И все-таки, раскройте, как DI и ServiceLocator связаны с избеганием анемичной модели.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721295
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasDenis.gandjustas,
пример чего? отличия ооп от процедурнго программировния?
Нет. Пример того, чем мешает анемик при сложной и изменчивой логике.
апи искать сложнее, код читать сложнее итд итп
man.Shout() manHelper.Shout(man)
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721309
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.gandjustasпропущено...

Нет. Пример того, чем мешает анемик при сложной и изменчивой логике.
апи искать сложнее, код читать сложнее итд итп
man.Shout() manHelper.Shout(man)

1) надо нормальные имена давать, а не 100500 helper\manager классов
2) во многих случаях можно тупо Extension методами обойтись
3) там где нельзя - сервисные классы инжектятся в контроллеры, и не надо искать ничего.

С поисками АПИ проблемы всегда. Функция создания заказа это:
1) new Order(customer)
2) customer.CreateOrder()
3) shoppingCart.CreateOrder()

Я видел систему со всеми тремя вариантами и они работали по-разному ;)
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721313
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchDenis.,

И все-таки, раскройте, как DI и ServiceLocator связаны с избеганием анемичной модели.
Чтобы модель делала что-то полезное ей в 99% случаев нужны внешние зависимости.
Простой пример - есть сущность ссылка. У этой сущности есть поле майгуид. Уникальная строка в 6 символов. Чтобы делать этот гуид есть сервис, скажем, guidProvider. Выходит чтобы создать ссылку мне нужно или передать в конструктор провайдер, или передать готовый гуид, или достать guidProvider через локатор. Как только логика становится сложнее количество зависимостей растет очень быстро.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721316
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustas,

скажу честно - не убедительно. Ну то что вы рассказали это процедурное программирование "чистой воды". Я не говорю что это всегда плохо, но топик не об этом.
Предлагаю в этой теме не обсуждать ненужность rich model, а все-же обсудить варианты ее релизации в контексте ef с учетом сложной бл и множества зависимостей.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721347
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.,

Чтобы обсуждать варианты реализации нужно понять зачем это делать.

Пока только один ответ увидел: "чтобы писать man.Shout()".

Это совершенно не аргумент по двум причинам:
1) Тоже самое можно сделать экстеншн-методами.
2) В реальном проекте такой код встречается крайне редко.

Зато уже очевидна проблема с тем, что нужно загружать полный класс man, даже если метод Shout использует одно поле.

Получается вы придумали проблему, которой реально нет, потом пытаетесь придумать решения, которое тянет вполне реальные проблемы. Я предлагаю вернуться в начало и попытаться найти ту проблему, которую вы пытаетесь решить.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721348
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.апи искать сложнее, код читать сложнее итд итп
man.Shout() manHelper.Shout(man)

это отвратительно. какой manHelper ещё? оба способа не жизнеспособны.

gandjustasС поисками АПИ проблемы всегда. Функция создания заказа это:
1) new Order(customer)
2) customer.CreateOrder()
3) shoppingCart.CreateOrder()

почему не так

var result = OrderService.CreateOrder(items);
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721351
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.Чтобы модель делала что-то полезное ей в 99% случаев нужны внешние зависимости.
Простой пример - есть сущность ссылка. У этой сущности есть поле майгуид. Уникальная строка в 6 символов. Чтобы делать этот гуид есть сервис, скажем, guidProvider. Выходит чтобы создать ссылку мне нужно или передать в конструктор провайдер, или передать готовый гуид, или достать guidProvider через локатор. Как только логика становится сложнее количество зависимостей растет очень быстро.

с опытом придёт, что проблема не только в зависимостях, но и в разделении ответственности. с простыми примерами всё ясно, а чуть сложнее и надо будет ломать голову, кто же отвечает за создание заказа: модель заказа или модель корзины? треш и ад тому, кто будет это говно сопровождать.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721353
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttgandjustasС поисками АПИ проблемы всегда. Функция создания заказа это:
1) new Order(customer)
2) customer.CreateOrder()
3) shoppingCart.CreateOrder()

почему не так

var result = OrderService.CreateOrder(items);

Такой код вызывался внутри shoppingCart.CreateOrder() :)
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721371
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasТакой код вызывался внутри shoppingCart.CreateOrder() :)

1) new Order(customer)
2) customer.CreateOrder()

вот эти способы я бы сразу отправил на помойку без суда и следствия.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721381
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.LelouchDenis.,

И все-таки, раскройте, как DI и ServiceLocator связаны с избеганием анемичной модели.
Чтобы модель делала что-то полезное ей в 99% случаев нужны внешние зависимости.
Простой пример - есть сущность ссылка. У этой сущности есть поле майгуид. Уникальная строка в 6 символов. Чтобы делать этот гуид есть сервис, скажем, guidProvider. Выходит чтобы создать ссылку мне нужно или передать в конструктор провайдер, или передать готовый гуид, или достать guidProvider через локатор. Как только логика становится сложнее количество зависимостей растет очень быстро.

Тема не раскрыта. DI и ServiceLocator позволяют уменьшить связанность в модели, но избегать анемичной модели они не помогают ( и не мешают )
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721469
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustas,

я думал я говорю о понятных вещах
тут больше
1
2
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721472
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt... а чуть сложнее и надо будет ломать голову, кто же отвечает за создание заказа: модель заказа или модель корзины? треш и ад тому, кто будет это говно сопровождать.

hVosttпочему не так

var result = OrderService.CreateOrder(items);


а почему не ShoppingCart.CreateOrder(items);
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как вы избегаете anemic model в ef
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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