|
как вы избегаете 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 |
|
|
start [/forum/topic.php?fid=20&msg=38720823&tid=1402594]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 147ms |
0 / 0 |