|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
все инжектите или все-же через локатор? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 23:14 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 23:30 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
LelouchDenis., а как anemic model или ее избегание связано с DI или Service Locator? это говорит о том, что вы ее даже не пытались избегать) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 23:57 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis., А зачем избегать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 23:59 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
gandjustas, ну представим случай, что бл настолько сложна и изменчива что смысл имеет ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 00:01 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis., а с чего ты взял что в этом случае имеет смысл? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 00:03 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
gandjustas, опыт подсказывает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 00:04 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis., Какой? Приведи конкретный пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 00:40 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
gandjustas, пример чего? отличия ооп от процедурнго программировния? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 00:58 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
gandjustas, у тебя бл где живет? В батонклике? В менеджере\хелпере\контроллере? Или в моделе? А если в моделе как ты ей скармливаешь сервисы? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 01:03 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis., конечно в отдельных классах. я не называю их менеджерами или хелперами, это мешает читаемости. В модель пихать БЛ - плохая идея, ибо нужно загружать целые объекты на каждый чих, а это тормозит. У меня 90% запросов используют проекции. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 01:16 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.gandjustas, пример чего? отличия ооп от процедурнго программировния? Нет. Пример того, чем мешает анемик при сложной и изменчивой логике. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 01:18 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis., И все-таки, раскройте, как DI и ServiceLocator связаны с избеганием анемичной модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 13:08 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
gandjustasDenis.gandjustas, пример чего? отличия ооп от процедурнго программировния? Нет. Пример того, чем мешает анемик при сложной и изменчивой логике. апи искать сложнее, код читать сложнее итд итп man.Shout() manHelper.Shout(man) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 14:32 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.gandjustasпропущено... Нет. Пример того, чем мешает анемик при сложной и изменчивой логике. апи искать сложнее, код читать сложнее итд итп man.Shout() manHelper.Shout(man) 1) надо нормальные имена давать, а не 100500 helper\manager классов 2) во многих случаях можно тупо Extension методами обойтись 3) там где нельзя - сервисные классы инжектятся в контроллеры, и не надо искать ничего. С поисками АПИ проблемы всегда. Функция создания заказа это: 1) new Order(customer) 2) customer.CreateOrder() 3) shoppingCart.CreateOrder() Я видел систему со всеми тремя вариантами и они работали по-разному ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 14:40 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
LelouchDenis., И все-таки, раскройте, как DI и ServiceLocator связаны с избеганием анемичной модели. Чтобы модель делала что-то полезное ей в 99% случаев нужны внешние зависимости. Простой пример - есть сущность ссылка. У этой сущности есть поле майгуид. Уникальная строка в 6 символов. Чтобы делать этот гуид есть сервис, скажем, guidProvider. Выходит чтобы создать ссылку мне нужно или передать в конструктор провайдер, или передать готовый гуид, или достать guidProvider через локатор. Как только логика становится сложнее количество зависимостей растет очень быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 14:45 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
gandjustas, скажу честно - не убедительно. Ну то что вы рассказали это процедурное программирование "чистой воды". Я не говорю что это всегда плохо, но топик не об этом. Предлагаю в этой теме не обсуждать ненужность rich model, а все-же обсудить варианты ее релизации в контексте ef с учетом сложной бл и множества зависимостей. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 14:50 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis., Чтобы обсуждать варианты реализации нужно понять зачем это делать. Пока только один ответ увидел: "чтобы писать man.Shout()". Это совершенно не аргумент по двум причинам: 1) Тоже самое можно сделать экстеншн-методами. 2) В реальном проекте такой код встречается крайне редко. Зато уже очевидна проблема с тем, что нужно загружать полный класс man, даже если метод Shout использует одно поле. Получается вы придумали проблему, которой реально нет, потом пытаетесь придумать решения, которое тянет вполне реальные проблемы. Я предлагаю вернуться в начало и попытаться найти ту проблему, которую вы пытаетесь решить. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 15:22 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.апи искать сложнее, код читать сложнее итд итп man.Shout() manHelper.Shout(man) это отвратительно. какой manHelper ещё? оба способа не жизнеспособны. gandjustasС поисками АПИ проблемы всегда. Функция создания заказа это: 1) new Order(customer) 2) customer.CreateOrder() 3) shoppingCart.CreateOrder() почему не так var result = OrderService.CreateOrder(items); ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 15:23 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.Чтобы модель делала что-то полезное ей в 99% случаев нужны внешние зависимости. Простой пример - есть сущность ссылка. У этой сущности есть поле майгуид. Уникальная строка в 6 символов. Чтобы делать этот гуид есть сервис, скажем, guidProvider. Выходит чтобы создать ссылку мне нужно или передать в конструктор провайдер, или передать готовый гуид, или достать guidProvider через локатор. Как только логика становится сложнее количество зависимостей растет очень быстро. с опытом придёт, что проблема не только в зависимостях, но и в разделении ответственности. с простыми примерами всё ясно, а чуть сложнее и надо будет ломать голову, кто же отвечает за создание заказа: модель заказа или модель корзины? треш и ад тому, кто будет это говно сопровождать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 15:26 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
hVosttgandjustasС поисками АПИ проблемы всегда. Функция создания заказа это: 1) new Order(customer) 2) customer.CreateOrder() 3) shoppingCart.CreateOrder() почему не так var result = OrderService.CreateOrder(items); Такой код вызывался внутри shoppingCart.CreateOrder() :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 15:27 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
gandjustasТакой код вызывался внутри shoppingCart.CreateOrder() :) 1) new Order(customer) 2) customer.CreateOrder() вот эти способы я бы сразу отправил на помойку без суда и следствия. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 15:38 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.LelouchDenis., И все-таки, раскройте, как DI и ServiceLocator связаны с избеганием анемичной модели. Чтобы модель делала что-то полезное ей в 99% случаев нужны внешние зависимости. Простой пример - есть сущность ссылка. У этой сущности есть поле майгуид. Уникальная строка в 6 символов. Чтобы делать этот гуид есть сервис, скажем, guidProvider. Выходит чтобы создать ссылку мне нужно или передать в конструктор провайдер, или передать готовый гуид, или достать guidProvider через локатор. Как только логика становится сложнее количество зависимостей растет очень быстро. Тема не раскрыта. DI и ServiceLocator позволяют уменьшить связанность в модели, но избегать анемичной модели они не помогают ( и не мешают ) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 15:48 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 17:21 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
hVostt... а чуть сложнее и надо будет ломать голову, кто же отвечает за создание заказа: модель заказа или модель корзины? треш и ад тому, кто будет это говно сопровождать. hVosttпочему не так var result = OrderService.CreateOrder(items); а почему не ShoppingCart.CreateOrder(items); ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 17:24 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
LelouchDenis., а как anemic model или ее избегание связано с DI или Service Locator? LelouchТема не раскрыта. DI и ServiceLocator позволяют уменьшить связанность в модели, но избегать анемичной модели они не помогают ( и не мешают ) попытаюсь еще раз - чтобы модель имела "вменяемой" поведение ей часто нужны зависимости. - DI и SL частные возможные случае работы с зависимостями Что конкретно не понятно \ не раскрыто? Если я спрошу как вы в мвц контроллеры передаете репозитории: резолвете конструкторы или дергаете через локатор(или они у вас синглтоны статики итд) вы поймете? Почему тут не понимаете? В чем конкретно ваш вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 17:32 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.я думал я говорю о понятных вещах Частое явление, называется "думаю что знаю". Denis.тут больше 1 2 Думаешь я эти ссылки не читал? Но ты приведи хоть одну реальную проблему, которая решается "избеганием anemic". От "избегания anemic" я наблюдаю только эффект падения производительности, а ничего положительного не вижу. Кстати из гугла пятая ссылка - http://aabs.wordpress.com/2007/01/23/the-great-domain-model-debate-–-solved/ Anemic таки выигрывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 17:56 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
gandjustas, есть много факторов - требования к скорости работы, к скорости написания, специфика по, квалификации разработчиков, используемые языки, используемые библиотеки, используемые средства разарботки итд итп. Список можно продолжать. Целью данного топика я не ставил сравнение анемка с ричем, а спрашивал о конкретных вещах: как "вы" инжектете зависимости в свою рич модель на базе ef. Я понял ваше отношение к данному вопросу, но оно не релевантно топику. Можем похоливарить в соседней теме, думаю может получиться интересно. Этот же топик преследует вполне конкретную цель. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 18:02 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis., По скорости работы и скорости написания anemic таки лучше. Его и использую. Сервисы в сущности не инжектю и вам не советую. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 18:07 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.а почему не ShoppingCart.CreateOrder(items); нарушение принципов S OLID. потому что. корзина это не более чем временное хранилище товаров, добавляемых туда пользователем. с какого нахрен перепугу, корзина вдруг должна создавать заказы? я иногда поражаюсь, с банальной логикой-то у людей всё в порядке? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 22:29 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.Целью данного топика я не ставил сравнение анемка с ричем, а спрашивал о конкретных вещах: как "вы" инжектете зависимости в свою рич модель на базе ef. Никак, это идиотизм чистой воды. Вот вы как на велосипеде ездите, когда взваливаете его себе на спину, руками педали крутите, или моторчик для этого используете? Очень интересно. ПОделитесь секретом! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 22:31 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.Этот же топик преследует вполне конкретную цель. Если абстрагироваться от модели. То уже блин всё давно сказано, написано и разжёвано. Зачем поднимать такой глупый вопрос? Сказано уже не одну тысячу раз, Service Locator это антипатерн, хоть и не абсолютное зло, но по возможности стоит его избегать. Есть возможность заинжектить? Инжекти, бро! Не ипай мозги людям, сколько можно-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2014, 22:33 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
hVosttDenis.а почему не ShoppingCart.CreateOrder(items); нарушение принципов S OLID. потому что. корзина это не более чем временное хранилище товаров, добавляемых туда пользователем. с какого нахрен перепугу, корзина вдруг должна создавать заказы? я иногда поражаюсь, с банальной логикой-то у людей всё в порядке? Перечитай то что я написал. Внимательнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2014, 00:43 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
hVosttDenis.Целью данного топика я не ставил сравнение анемка с ричем, а спрашивал о конкретных вещах: как "вы" инжектете зависимости в свою рич модель на базе ef. Никак, это идиотизм чистой воды. Вот вы как на велосипеде ездите, когда взваливаете его себе на спину, руками педали крутите, или моторчик для этого используете? Очень интересно. ПОделитесь секретом! ты вообще не владеешь предметом, так и знал что не надо изначлаьно было отвечать на глупый вопрос. Скоро буду злиться на дремучесть как свеном :( ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2014, 00:44 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
hVosttнадо будет ломать голову, кто же отвечает за создание заказа: модель заказа или модель корзины? hVosttс какого нахрен перепугу, корзина вдруг должна создавать заказы? я иногда поражаюсь, с банальной логикой-то у людей всё в порядке? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2014, 00:49 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.hVosttнадо будет ломать голову, кто же отвечает за создание заказа: модель заказа или модель корзины? hVosttс какого нахрен перепугу, корзина вдруг должна создавать заказы? я иногда поражаюсь, с банальной логикой-то у людей всё в порядке? Я уже понял, что столкнулся с однобитной логикой. Ты видимо из упоротой компашки свенома, инопланетянин, могу только посочувствовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2014, 02:15 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.Перечитай то что я написал. Внимательнее. Читать как ты накидываешь тупой бред лопатой и правда весело. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2014, 02:16 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
hVostt, ты хам, неуч ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2014, 03:38 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2014, 03:41 |
|
как вы избегаете anemic model в ef
|
|||
---|---|---|---|
#18+
Denis.ты хам, неуч если больше нечего сказать, то лучше промолчать. Denis.если когда-нибудь осилишь английский, почитай <рука-лицо> ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2014, 11:12 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1402594]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 340ms |
total: | 496ms |
0 / 0 |