|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
пришлось мне возиться с одним проектом.. обычный такой вебсервис. апи база все дела. так вот чел который его делал упорно избегал среднего слоя. и фигачил работу с репозиторием прям в контроллере. т.е. вызовы репозитория и какая то там логика была внутри контроллера. я вот как то после спринга к такому не привык. но решил подумтаь. а так ли нужен в некоторых случаях сервисный слой, ведь в большинстве кейсов всё что ты делаешь в контроллере - вызываешь один единственный метод сервиса и все чудеса уже идут там. что тогда в контроллере делать? та же валидация полученных данных она производится прямо внутри того класса который на входе в контроллер. что тогда делать в контроллере остается? ну логировать какие то мелочи ненужные и всё. из минусов что вижу - у меня вознили проблемы с обкладыванием тестами. т.е. мне надо писать по-сути апи тест. чтоб проверить логику. и это как то не очень. опять же на мой взгляд. в целом, мой консервативный взгляд говорит мне, что сервис-слой таки нужен. даже если в контроллере останется один единственный вызов. собссно что думаете вы? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 13:32 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
Я думаю что вы, как архитектор вашей системы имеете полное право выкидывать звенья системы если нет мотивации к их использованию. В конечном счете принцип KISS никто не отменял и никакой Spring не может вас советовать как вам делать ваш проект. Что у вас там? В сервисах? Логика которую надо тестировать? Или состояние? Лет 10 назад я считал что всем веб-приложениям нужен объект Session. Сегодня я вижу такие решения которые спокойно работают без сесии, скейлятся и не испытывают каких-то проблем по этому поводу. И с аутентификацией у них все в порядке. Вобщем курс на упрощение я поддерживаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 13:55 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
andreykaTчто тогда в контроллере делать? формально функция контроллера обработка запросов/ответов плюс авторизация. даже если благодаря спрингу в самом контроллере кода практически нет (а в случае spring data rest и контроллера нет), так что идея о том что andreykaTу меня вознили проблемы с обкладыванием тестами. т.е. мне надо писать по-сути апи тест. здравая. плюс бизнес-логика может быть довольно нетривиальной, с использованием кучи зависимостей. если все это запихать в контроллер - будет ад. andreykaTсервис-слой таки нужен. даже если в контроллере останется один единственный вызов я такого же мнения придерживаюсь. если проект основательный. коли какая-то хрень типа сборщика логов так пофиг. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 14:01 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
понятно. ну а всё же в той же экосистеме спринга что внутри то держать контроллера? ну окей может какой-нибудь диспетчер сервисов? если один эндпойнт отвечает за много чего. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 15:50 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
andreykaT, ну в общих чертах и я пришел к такому мнению - надо все упрощать, а не следовать догмам.... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 17:23 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
andreykaT, Ну если у вас из БЛ один метод дайМнеХХХ(... конечно сервис слой не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 18:20 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
PetroNotC SharpandreykaT, Ну если у вас из БЛ один метод дайМнеХХХ(... конечно сервис слой не нужен. да. в том и вопрос. вроде бы и не нужен. а может всё же нужен?? вот сегодня он тебе не нужен а завтра стал нужен. и ты такой начинаешь копипастить весь код в сервис. мне кажется, субъективно конечно же. это выглядит несколько неряшливо. но.. возвращаясь к изначальному вопросу. я так понимаю, это всё же практикуется и не говнокод. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 10:34 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
Мы щас стартуем аналитику для пендосов. Так у нас в стеке даже Спринга нету. Хотя веб-слой существует. Пока хватает облачных Jetty+GraphQL. Вобщем... нужно быть сфокусированным именно на задаче. А не дро..ить шаблоны. Летает бизнес-логика в контроллере? Ну и нормас. А кто хочет сказать что ты должен ее перенести в сервисы - пусть расскажет (на примерах) какую конкретно выгоду это принесет. Кроме логгирования конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 10:41 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
andreykaT, Я тебе даже цифру дал, когда нужен и когда нет. А ты все одно талдычишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 11:00 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
PetroNotC Sharpодин метод дайМнеХХХ(...дак один метод у тебя? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 11:04 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
andreykaTтак вот чел который его делал упорно избегал среднего слоя. и фигачил работу с репозиторием прям в контроллере. т.е. вызовы репозитория и какая то там логика была внутри контроллера.как-то странно кмк, у нас вот наоборот: универсальный контроллер - это десяток классов, а все остальное в сервисах. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 11:13 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
можно подробнее? не совсем понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 11:18 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
я как то был в проекте. там был кстати тоже вроде 4 эндпойнта и всё. остальное они рулили через кейсы. т.е. длиннющая портянка кейсов которая решала на какой сервис уходит запрос. но проект был на тот момент 10+ лет и наерное тогда писали только так :) не знаю чем мотивировали скажем использование этого вместо того чтоб создать новый контроллер с прописанным названием в пути. но вот было такое вот решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 11:20 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
andreykaTможно подробнее? не совсем понял.дак любой hello world по контроллеру ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 11:42 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
andreykaT, у спринга сто лет есть аннотация для репозитораия, которая выставляет его методы через web. Даже контроллер не нужен!! Фигачь прямо в репозитории! RepositoryRestResource - наше все! По сути, если проект делает один человек и этот проект довольно примитивный, то можно фигачить что угодно куда угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 09:28 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
andreykaTсобссно что думаете вы? ИМХО Слоя приложения определяется доменной моделью которой он оперирует. Если доменная модель репозитария == доменной модели контроллера, то прокладка в виде сервисного слоя как бы и не нужна. Явно видно это на примеры элементарных CRUD-приложений, когда слои Controller, Service и Repository ничем друг от друга не отличаются (особенно если использовать Spring Data JPA) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 11:40 |
|
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
|
|||
---|---|---|---|
#18+
mad_nazgulЯвно видно это на примеры элементарных CRUD-приложений, когда слои Controller, Service и Repository ничем друг от друга не отличаются (особенно если использовать Spring Data JPA)их ещё нет, когды мы задались вопросом, нужны они или нет? Будем их писать или нет? ))) Поэтому я вас понял, но расплывчато имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 13:14 |
|
|
start [/forum/topic.php?fid=59&fpage=26&tid=2121224]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 227ms |
total: | 412ms |
0 / 0 |