|
Repository & Service
|
|||
---|---|---|---|
#18+
Артем GСервис - это бизнес логика. Все предельно ясно. Но как доходит до практики начинают возникать вопросы. Как пример: выше я показал репозиторий и сервис. Но то, что написано в репозитории выглядит как бизнес логика, а то, что написано в сервисе выглядит как излишнее... Я бы не сказал, что сервис -- это бизнес-логика. Сервис, это сервис. Бизнес-логика, это код, который непосредственно решает задачи бизнеса, а именно: комплексные операции обработки и сохранения данных, включая проверку доступа, валидацию, операционные эффекты, генерацию сообщений, вычисления, и прочее... Т.е. всё то, для чего приложение разрабатывается. Часто бизнес-логику размазывают, особенно по контроллерам, из-за непонимания где такую логику разместить. Сервисы -- это классы, предоставляющие определённые услуги. Например, сервис данных обеспечивает прикладной код необходимыми данными. Сервис доставки сообщений обеспечивает эту доставку и всё что прилагается. И т.д. Бизнес-логика, это и есть совокупность всех различных сервисов. Но не всегда архитектура строится на сервисах, есть и другие подходы, которые практически полностью исключают необходимость создания сервис-классов. Ну а к твоему вопросу, на самом деле ответить нельзя, пока не будет условия задачи. Если приложение представляет собой сохранялку-показывалку данных, то вся логика уместится в дата-сервисах с методами Дай() и Положи() грубо говоря. В целом, из инфраструктуры презентации (контроллер, презентер, вью...) необходимо выкашивать всю бизнес-логику по максимуму. А как ты это будешь делать зависит целиком и полностью от задач. Нет какой-то универсальной архитектуры и правильного разбиения по слоям. При прототипировании, например, вполне уместно работать прям с DbContext-ом, и прям в контроллерах. Но в серьёзных проектах умные адекватные дядьки, конечно, так делать никогда не будут ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 23:53 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVostt, во каша в башке :) сервис, бизнес логика :) сервис - это просто сервис, услуга, которую оказывает сервер, прислуга бизнес- логика - это просто логика взаимодействия клиентов(тоже могут быть сервисами) и сервисов для достижения целей внесистемных клиентов главное найти первого внесистемного клиента если ты сервис, дальше сама пойдет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 00:40 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Артем GЗачем вообще слой Service?Service - это совокупность репозиториев. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 04:05 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Иммануил КантАлексей Ккачестве репозитория выступает DbContext заблуждение, я считаю. это не репо, это ниже: ISession, DbContext, IDbConnection, просто сохранение в файлы...Я бы тоже так считал. Но в определении написано именно то, что там написано. Я подхожу в данном случае чисто с формальной точки зрения, проклятый LINQ-2-SQL, и EF в частности, разрушил всю концепцию репозитариев. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 06:14 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Алексей КИммануил Кантпропущено... заблуждение, я считаю. это не репо, это ниже: ISession, DbContext, IDbConnection, просто сохранение в файлы...Я бы тоже так считал.И кстати нет, естественно, что имелся ввиду класс-потомок от DbContext, содержащий схему конкретной БД. А это уже прикладной код, в отличии от IDbConnection, ISession и т. п. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 06:24 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVosttskyANAпропущено... И какое покрытие у таких тестов? И сколько по времени они выполняются? Алексей путает интеграционные тесты с модульными. Смею предположить, что из-за отсутствия опыта в тестировании .Местные авторитеты собрались, посовещались и вынесли решение? Браво! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 06:27 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
ViPRoshVostt, во каша в башке :) сервис, бизнес логика :) сервис - это просто сервис, услуга, которую оказывает сервер, прислуга бизнес- логика - это просто логика взаимодействия клиентов(тоже могут быть сервисами) и сервисов для достижения целей внесистемных клиентов главное найти первого внесистемного клиента если ты сервис, дальше сама пойдет :) Какая каша? Объясни тогда по-другому, потому что я пока не понял из твоих слов что есть что. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 08:14 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Алексей КМестные авторитеты собрались, посовещались и вынесли решение? Браво! Не путай решение с выводами ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 08:14 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Алексей КEF в частности, разрушил всю концепцию репозитариев С какого он его разрушил? Репозиторий -- абстракция над способом хранения данных, EF это ORM к SQL базе данных (до 7 версии), это ни разу не абстракция и ни разу не репозиторий, а скорее его реализация. Мда..... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 08:16 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVostt... это ни разу не абстракция и ни разу не репозиторий, а скорее его реализация. ViPRos прав, у тебя каша в голове. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 08:36 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Алексей КhVostt... это ни разу не абстракция и ни разу не репозиторий, а скорее его реализация. ViPRos прав, у тебя каша в голове. Аргументируй. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 08:48 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Алексей КИммануил Кантпропущено... заблуждение, я считаю. это не репо, это ниже: ISession, DbContext, IDbConnection, просто сохранение в файлы...Я бы тоже так считал. Но в определении написано именно то, что там написано. Я подхожу в данном случае чисто с формальной точки зрения, проклятый LINQ-2-SQL, и EF в частности, разрушил всю концепцию репозитариев. А теперь расскажи, где разрушили? Это ORM от слова Mapping. А теперь перечитай описание шаблона репозиторий и найди, где mapping там. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 08:55 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVosttskyANAпропущено... И какое покрытие у таких тестов? И сколько по времени они выполняются? Алексей путает интеграционные тесты с модульными. Смею предположить, что из-за отсутствия опыта в тестировании. С чего ты взял, что путает? Скорее он просто не пишет модульные тесты. И наверняка считает, что им в проекте этого не надо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:01 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
skyANAИ наверняка считает, что им в проекте этого не надо :)Тебе-то виднее, что мне в проекте надо, да? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:07 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVosttАртем GСервис - это бизнес логика. Все предельно ясно. Но как доходит до практики начинают возникать вопросы. Как пример: выше я показал репозиторий и сервис. Но то, что написано в репозитории выглядит как бизнес логика, а то, что написано в сервисе выглядит как излишнее... Я бы не сказал, что сервис -- это бизнес-логика. ... Бизнес-логика, это и есть совокупность всех различных сервисов. ИМХО часть бизнес-логики - это тоже бизнес-логика. :) Да, можно нарисовать граф, части которого обвести большими кругами... Но давайте быть проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:10 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Алексей КskyANAИ наверняка считает, что им в проекте этого не надо :)Тебе-то виднее, что мне в проекте надо, да? Ну не будь таким Толстым занудой :) Ты же понял, что это предположение, а не утверждение, основанное на предыдущем с тобой общении. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:12 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Артем GskyANAСервис - это бизнес-логика . Это как если бы Вы что-то делали, делали, проверяли, сверяли, получили результат (вот это сервис)... и на листочек записали (вот это репозиторий). Просто многие пихают первое в контроллеры, а потом задаются вопросом: а чем у нас сервисы от репозиториев-то отличаются? :) Сервис - это бизнес логика. Все предельно ясно. Но как доходит до практики начинают возникать вопросы. Как пример: выше я показал репозиторий и сервис. Но то, что написано в репозитории выглядит как бизнес логика, а то, что написано в сервисе выглядит как излишнее... Я начал писать проект и хоть для меня "не понятно" в чем суть сервиса, но решил не отклоняться от рекомендаций. Потому как отклонения череваты ))) ... А каков функционал проекта (основной)? Неужели искать первую попавшуюся блокированную или нет категорию? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:19 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Тебе-то виднее, что мне в проекте надо, да? Ну не будь таким Толстым занудой :) Ты же понял, что это предположение, а не утверждение, основанное на предыдущем с тобой общении."Я в своих проектах не применяю модульные тесты, поэтому я не умею их использовать" - странное предположение и не в первый раз. Я просто не мог молча пройти мимо и не прокомментировать это. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:20 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Ну не будь таким Толстым занудой :) Ты же понял, что это предположение, а не утверждение, основанное на предыдущем с тобой общении."Я в своих проектах не применяю модульные тесты, поэтому я не умею их использовать" - странное предположение и не в первый раз. Я просто не мог молча пройти мимо и не прокомментировать это. :-) А к чему ты цитируешь то, что я не писал и не думал даже писать? Мнительный? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:23 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
skyANAИМХО часть бизнес-логики - это тоже бизнес-логика. :) Я к тому, что некоторые считают, что сервис-классы это и есть бизнес-логика. В некоторых проектах, видел, такие классы и вовсе называют типа SomeLogic, что в общем-то неплохо, гораздо лучше, чем логика в презентационной инфраструктуре. skyANAДа, можно нарисовать граф, части которого обвести большими кругами... Но давайте быть проще. Ну проще и понятнее было бы логику обособлять в отдельном модуле (или в модулях), для многократного использования в различном применении. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:25 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVostt, как обзывать классы, инкапсулирующие бизнес-логику, и в какие модули выносить - это отдельный вопрос. Давай вернёмся к ТС: "Зачем вообще слой Service? Такое ощущение что вместо сервиса можно использовать сразу репозиторий в клиенте". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:35 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
hVosttНу проще и понятнее было бы логику обособлять в отдельном модуле (или в модулях), для многократного использования в различном применении.Браво! Нобелевскую! Ты первый, кто до этого додумался! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:38 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... "Я в своих проектах не применяю модульные тесты, поэтому я не умею их использовать" - странное предположение и не в первый раз. Я просто не мог молча пройти мимо и не прокомментировать это. :-) А к чему ты цитируешь то, что я не писал и не думал даже писать? Мнительный? :)Я тебе сообщаю, как я тебя понял, и всего-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:40 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... А к чему ты цитируешь то, что я не писал и не думал даже писать? Мнительный? :)Я тебе сообщаю, как я тебя понял, и всего-то. А мне любопытно, почему ты понял меня не правильно, приписал мне левые выводы :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:45 |
|
Repository & Service
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Я тебе сообщаю, как я тебя понял, и всего-то. А мне любопытно, почему ты понял меня не правильно, приписал мне левые выводы :)Мне надоело упражняться в красноречии, я лучше пойду. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 10:01 |
|
|
start [/forum/topic.php?fid=20&msg=39185608&tid=1400730]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 166ms |
0 / 0 |