powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как вы избегаете anemic model в ef
40 сообщений из 40, показаны все 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
как вы избегаете anemic model в ef
    #38721486
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchDenis.,

а как anemic model или ее избегание связано с DI или Service Locator?


LelouchТема не раскрыта. DI и ServiceLocator позволяют уменьшить связанность в модели, но избегать анемичной модели они не помогают ( и не мешают )

попытаюсь еще раз
- чтобы модель имела "вменяемой" поведение ей часто нужны зависимости.
- DI и SL частные возможные случае работы с зависимостями

Что конкретно не понятно \ не раскрыто?
Если я спрошу как вы в мвц контроллеры передаете репозитории: резолвете конструкторы или дергаете через локатор(или они у вас синглтоны статики итд) вы поймете? Почему тут не понимаете?
В чем конкретно ваш вопрос?
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721504
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.я думал я говорю о понятных вещах
Частое явление, называется "думаю что знаю".

Denis.тут больше
1
2
Думаешь я эти ссылки не читал?

Но ты приведи хоть одну реальную проблему, которая решается "избеганием anemic".

От "избегания anemic" я наблюдаю только эффект падения производительности, а ничего положительного не вижу.

Кстати из гугла пятая ссылка - http://aabs.wordpress.com/2007/01/23/the-great-domain-model-debate-–-solved/
Anemic таки выигрывает.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721509
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustas,

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

По скорости работы и скорости написания anemic таки лучше. Его и использую. Сервисы в сущности не инжектю и вам не советую.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721630
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.а почему не ShoppingCart.CreateOrder(items);

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

Никак, это идиотизм чистой воды. Вот вы как на велосипеде ездите, когда взваливаете его себе на спину, руками педали крутите, или моторчик для этого используете? Очень интересно. ПОделитесь секретом!
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721634
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.Этот же топик преследует вполне конкретную цель.

Если абстрагироваться от модели. То уже блин всё давно сказано, написано и разжёвано. Зачем поднимать такой глупый вопрос? Сказано уже не одну тысячу раз, Service Locator это антипатерн, хоть и не абсолютное зло, но по возможности стоит его избегать. Есть возможность заинжектить? Инжекти, бро! Не ипай мозги людям, сколько можно-то?
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721663
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttDenis.а почему не ShoppingCart.CreateOrder(items);

нарушение принципов S OLID. потому что. корзина это не более чем временное хранилище товаров, добавляемых туда пользователем. с какого нахрен перепугу, корзина вдруг должна создавать заказы? я иногда поражаюсь, с банальной логикой-то у людей всё в порядке?
Перечитай то что я написал. Внимательнее.
...
Рейтинг: 0 / 0
как вы избегаете anemic model в ef
    #38721664
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttDenis.Целью данного топика я не ставил сравнение анемка с ричем, а спрашивал о конкретных вещах: как "вы" инжектете зависимости в свою рич модель на базе ef.

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


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


hVosttс какого нахрен перепугу, корзина вдруг должна создавать заказы? я иногда поражаюсь, с банальной логикой-то у людей всё в порядке?

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

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

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

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

если больше нечего сказать, то лучше промолчать.

Denis.если когда-нибудь осилишь английский, почитай

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


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