|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
LessypskyANAВы специально игнорируете упоминание CQRS? 3. Не использовать репозиторий, а использовать CQRS и никакого цементирования в методах сервисного класса. отнюдь. Просто в CQRS у вас все равно будут вариации на тему зацементированности или репозиториев А слабо пример привести? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2018, 12:47 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
Lessyp, не будет зацементированности. давайте я приведу каноничную реализацию репозитория: FindById Add Update Delete всё. а где, спросите, GetAll, GetList, GetQuery.... можно найти массу решений, и даже примеры в статьях, где подобные методы есть. но это неправильно. в CQRS, вообще ничего такого нет от слова совсем. а где, где же вот это вот всё? ответ: Query Object, можно посмотреть в чужих исходниках вариации на тему QueryProcessor, QueryHandler etc. если это не CQRS, то может быть добавлен ещё один метод GetBySpecification а ещё, не забываем про пейджинг. его нужно закладывать изначально для всех. да, даже для долбаных справочников, где _НУ_СОВЕРШЕННО_ТОЧНО_НИКОГДА!!__ не будет больше 3-х записей. дичайшие нарушения, за которые надо руки по шею отрывать, начинаются вот с таких тупейших посылов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 06:05 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
hVosttне будет зацементированности. так я и говорю, что будет либо цементирование, либо репозиторий. Все что вы говорите про репозитории уже разложено выше, мы их 4 подвида определили ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 07:51 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
LessyphVosttне будет зацементированности. так я и говорю, что будет либо цементирование, либо репозиторий У тебя может и будет, но мы не понимаем, с чего вдруг. Пример приведи уже. В случае с CQRS ЕF запросы будут инкапсулированны в отдельных классах, а не зацементированы в методах сервисного класса, чего бы это не значило ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 10:27 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
А куда инкапсулировать запросы которые не относятся к Entity ? Допустим мне нравиться Repository и я реализовал их с Specification . В процессе написания программы возникают всякие абстрактные сущности типа Себестоимость , чтобы его вычислить нужно перелопатить много разных Entity. Куда этот запрос можно инкапсулировать? И запросов, их будет много видов, для каждого цеха своя методика расчета, своя портянка SQL. Как это оформляется? Tянуть Entity в память и на C# писать бизнес-логику или DBcontext получать на слое сервисов? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 12:30 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
ArpanxА куда инкапсулировать запросы которые не относятся к Entity ? Допустим мне нравиться Repository и я реализовал их с Specification . В процессе написания программы возникают всякие абстрактные сущности типа Себестоимость , чтобы его вычислить нужно перелопатить много разных Entity. Куда этот запрос можно инкапсулировать? И запросов, их будет много видов, для каждого цеха своя методика расчета, своя портянка SQL. Как это оформляется? Tянуть Entity в память и на C# писать бизнес-логику или DBcontext получать на слое сервисов? Ну, они себестоимость не считают а для "показать картинку, вставить картинку" можно и репозиторий со спесификейшн и CQRS с бубном :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 14:18 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
ViPRosArpanxА куда инкапсулировать запросы которые не относятся к Entity ? Допустим мне нравиться Repository и я реализовал их с Specification . В процессе написания программы возникают всякие абстрактные сущности типа Себестоимость , чтобы его вычислить нужно перелопатить много разных Entity. Куда этот запрос можно инкапсулировать? И запросов, их будет много видов, для каждого цеха своя методика расчета, своя портянка SQL. Как это оформляется? Tянуть Entity в память и на C# писать бизнес-логику или DBcontext получать на слое сервисов? Ну, они себестоимость не считают а для "показать картинку, вставить картинку" можно и репозиторий со спесификейшн и CQRS с бубном :) Что это не считаем, считаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 19:07 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
ArpanxА куда инкапсулировать запросы которые не относятся к Entity ? Допустим мне нравиться Repository и я реализовал их с Specification . В процессе написания программы возникают всякие абстрактные сущности типа Себестоимость , чтобы его вычислить нужно перелопатить много разных Entity. Куда этот запрос можно инкапсулировать? И запросов, их будет много видов, для каждого цеха своя методика расчета, своя портянка SQL. Как это оформляется? Tянуть Entity в память и на C# писать бизнес-логику или DBcontext получать на слое сервисов? Я не пойму, Вы под запросом вызов хранимой процедуры подразумеваете, раз про "на C# писать бизнес-логику" пишете? С точки зрения CQRS это будет команда, внутри которой вызов хранимой процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 19:10 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
ViPRosа для "показать картинку, вставить картинку" можно и репозиторий со спесификейшн и CQRS с бубном :) а для "показать какие расчёты в каком сейчас состоянии, добавить задачу на расчёт себестоимости" также можно и репозиторий со спесификейшн и CQRS с бубном :) Просто головой подумать надо немножко. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 19:21 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
skyANA Ну да, я изначально и хотел/подумал "вот CQRS решение моих проблем", потом где-то тут же вычитал, "а спецификации можно комбинировать, а Query нет", думаю ну ладно, пусть будет Repository. По поводу портянок SQL-кода (на 2500 строк, которые склеиваются на сервере приложения с помощью С# и скармливаются базе через ADO.NET), код который вычисляет какие-то абстрактные данные для отчетов, которые потом не требуют сохранения, думаю да заверну их в query object pattern . Думаю это было от большого ума написано. Нечего бизнес логику в SQL-е писать. Вполне можно разобрать на получение из Repository данных и логику написать на С#, так будет легче, понятней и можно будет тестировать. Но все равно, есть же ситуации когда надо выполнить какой нибудь комплексный/сложный запрос, который абстрактный и не принадлежит ни к одной Entity, в таких случаях буду разрешать себе использовать DBContext (запросы Read-only), пока так. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 20:59 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
ViPRosНу, они себестоимость не считают а для "показать картинку, вставить картинку" можно и репозиторий со спесификейшн и CQRS с бубном :) Мы ещё тестируем. Но деревенские мужики суровы, и тестов не используют. Метод фуяк-фуяк, методичный, отработанный, и плюёт на эти ваши паттерны и спесификейшен... Да? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 23:33 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
Arpanx, Ах.. всё в поисках серебряной пилюли. Эта печаль подстерегает многих, кто думает вот ща как заиспользую технологию X, и всё у меня будет хорошо и женщины появятся и деньги потекут рекой... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 23:34 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
skyANAС точки зрения CQRS это будет команда, внутри которой вызов хранимой процедуры. Если +ES, то конечно нет. Никаких хранимых процедур ) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 23:35 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
hVosttViPRosНу, они себестоимость не считают а для "показать картинку, вставить картинку" можно и репозиторий со спесификейшн и CQRS с бубном :) Мы ещё тестируем. Но деревенские мужики суровы, и тестов не используют. Метод фуяк-фуяк, методичный, отработанный, и плюёт на эти ваши паттерны и спесификейшен... Да? Мозгов не хватит написать тесты для моих методов (иначе прямо в комитет за нобелевской) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 02:30 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
hVosttskyANAС точки зрения CQRS это будет команда, внутри которой вызов хранимой процедуры. Если +ES, то конечно нет. Никаких хранимых процедур ) Это да, я просто думал, что у комрада Arpanx проблема как вызвать хранимку. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 07:22 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
ArpanxskyANA Ну да, я изначально и хотел/подумал "вот CQRS решение моих проблем", потом где-то тут же вычитал, "а спецификации можно комбинировать, а Query нет", думаю ну ладно, пусть будет Repository. По поводу портянок SQL-кода (на 2500 строк, которые склеиваются на сервере приложения с помощью С# и скармливаются базе через ADO.NET), код который вычисляет какие-то абстрактные данные для отчетов, которые потом не требуют сохранения, думаю да заверну их в query object pattern . Думаю это было от большого ума написано. Нечего бизнес логику в SQL-е писать. Вполне можно разобрать на получение из Repository данных и логику написать на С#, так будет легче, понятней и можно будет тестировать. Но все равно, есть же ситуации когда надо выполнить какой нибудь комплексный/сложный запрос, который абстрактный и не принадлежит ни к одной Entity, в таких случаях буду разрешать себе использовать DBContext (запросы Read-only), пока так. Может конкретный пример приведёте? А то ударяетесь с ходу в какие-то пространные рассуждения, из которых не понятно, а в чём конкретно проблема. SQL код на 2500 строк, который вычисляет какие-то абстрактные данные для отчетов, знаете как можно упростить? Вычислять эти данные при добавлении, изменении, удалении и сохранять. Потом отчёт строится очень быстро и элементарным запросом. 15 лет назад на первой работе научили ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 07:31 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
Arpanxя изначально и хотел/подумал "вот CQRS решение моих проблем", потом где-то тут же вычитал, "а спецификации можно комбинировать, а Query нет", думаю ну ладно, пусть будет Repository А что нужно комбинировать-то? Какие-нибудь параметры? Дак в CQRS с этим проблем нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 07:35 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
Arpanxв таких случаях буду разрешать себе использовать DBContext (запросы Read-only) А чё не Dapper? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 07:37 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
Arpanx, и может вообще пора задуматься об OLAP? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 08:13 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
ViPRosМозгов не хватит написать тесты для моих методов (иначе прямо в комитет за нобелевской) Всё ТАК плохо? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 11:29 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
hVostt, напиши тест на вывод числе фибаноччи, или поиск пути минимальной длина на графе, или суммы/факториала/да че угодно от 1 до n,... :) Я напишу метод который отработает для твоих тестов, но воще будет ошибочен ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 17:34 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
ViPRoshVostt, напиши тест на вывод числе фибаноччи, или поиск пути минимальной длина на графе, или суммы/факториала/да че угодно от 1 до n,... :) Я напишу метод который отработает для твоих тестов, но воще будет ошибочен легко. поиск пути (при заданном алгориме) - это итерации. вот и проверяем: шаг при заданных входных с фибоначи не сложнее. есть таблицы. вот и проверяем по ним ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 18:54 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
ViPRoshVostt, напиши тест на вывод числе фибаноччи, или поиск пути минимальной длина на графе, или суммы/факториала/да че угодно от 1 до n,... :) Я напишу метод который отработает для твоих тестов, но воще будет ошибочен Алгоритмы твои тогда на чем основаны? Чем докажешь, что они работают? Ну кроме твоего авторитетного слова? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 21:08 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
ViPRosнапиши тест на вывод числе фибаноччи В гугле забанили? "fibonacci unit test" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 21:57 |
|
EntityFramework и паттерн Repository
|
|||
---|---|---|---|
#18+
hVosttViPRoshVostt, напиши тест на вывод числе фибаноччи, или поиск пути минимальной длина на графе, или суммы/факториала/да че угодно от 1 до n,... :) Я напишу метод который отработает для твоих тестов, но воще будет ошибочен Алгоритмы твои тогда на чем основаны? Чем докажешь, что они работают? Ну кроме твоего авторитетного слова? ) Вощем ты в отличии от гуглистов понимаешь что тесты должны быть СЛОЖНЕЕ чем тестируемые методы? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 22:57 |
|
|
start [/forum/topic.php?fid=17&msg=39715240&tid=1349162]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 240ms |
total: | 355ms |
0 / 0 |