powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
17 сообщений из 17, страница 1 из 1
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829441
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пришлось мне возиться с одним проектом.. обычный такой вебсервис. апи база все дела.
так вот чел который его делал упорно избегал среднего слоя. и фигачил работу с репозиторием прям в контроллере. т.е. вызовы репозитория и какая то там логика была внутри контроллера.

я вот как то после спринга к такому не привык. но решил подумтаь. а так ли нужен в некоторых случаях сервисный слой, ведь в большинстве кейсов всё что ты делаешь в контроллере - вызываешь один единственный метод сервиса и все чудеса уже идут там.
что тогда в контроллере делать? та же валидация полученных данных она производится прямо внутри того класса который на входе в контроллер. что тогда делать в контроллере остается? ну логировать какие то мелочи ненужные и всё.

из минусов что вижу - у меня вознили проблемы с обкладыванием тестами. т.е. мне надо писать по-сути апи тест. чтоб проверить логику. и это как то не очень. опять же на мой взгляд.

в целом, мой консервативный взгляд говорит мне, что сервис-слой таки нужен. даже если в контроллере останется один единственный вызов.

собссно что думаете вы?
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829445
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю что вы, как архитектор вашей системы имеете полное право выкидывать звенья системы
если нет мотивации к их использованию. В конечном счете принцип KISS никто не отменял
и никакой Spring не может вас советовать как вам делать ваш проект.

Что у вас там? В сервисах? Логика которую надо тестировать? Или состояние?

Лет 10 назад я считал что всем веб-приложениям нужен объект Session. Сегодня я вижу такие
решения которые спокойно работают без сесии, скейлятся и не испытывают каких-то
проблем по этому поводу. И с аутентификацией у них все в порядке.

Вобщем курс на упрощение я поддерживаю.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829449
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTчто тогда в контроллере делать?
формально функция контроллера обработка запросов/ответов плюс авторизация. даже если благодаря спрингу в самом контроллере кода практически нет (а в случае spring data rest и контроллера нет), так что идея о том что

andreykaTу меня вознили проблемы с обкладыванием тестами. т.е. мне надо писать по-сути апи тест.
здравая. плюс бизнес-логика может быть довольно нетривиальной, с использованием кучи зависимостей. если все это запихать в контроллер - будет ад.

andreykaTсервис-слой таки нужен. даже если в контроллере останется один единственный вызов
я такого же мнения придерживаюсь. если проект основательный. коли какая-то хрень типа сборщика логов так пофиг.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829464
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понятно. ну а всё же в той же экосистеме спринга что внутри то держать контроллера? ну окей может какой-нибудь диспетчер сервисов? если один эндпойнт отвечает за много чего.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829475
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
ну в общих чертах и я пришел к такому мнению - надо все упрощать, а не следовать догмам....
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829480
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Ну если у вас из БЛ один метод дайМнеХХХ(...
конечно сервис слой не нужен.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829546
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpandreykaT,
Ну если у вас из БЛ один метод дайМнеХХХ(...
конечно сервис слой не нужен.
да. в том и вопрос. вроде бы и не нужен. а может всё же нужен??

вот сегодня он тебе не нужен а завтра стал нужен. и ты такой начинаешь копипастить весь код в сервис.

мне кажется, субъективно конечно же. это выглядит несколько неряшливо. но.. возвращаясь к изначальному вопросу. я так понимаю, это всё же практикуется и не говнокод.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829549
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы щас стартуем аналитику для пендосов. Так у нас в стеке даже Спринга нету. Хотя веб-слой
существует. Пока хватает облачных Jetty+GraphQL.

Вобщем... нужно быть сфокусированным именно на задаче. А не дро..ить шаблоны.

Летает бизнес-логика в контроллере? Ну и нормас. А кто хочет сказать что ты должен
ее перенести в сервисы - пусть расскажет (на примерах) какую конкретно выгоду это
принесет.

Кроме логгирования конечно.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829552
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Я тебе даже цифру дал, когда нужен и когда нет.
А ты все одно талдычишь.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829553
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpодин метод дайМнеХХХ(...дак один метод у тебя?
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829557
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTтак вот чел который его делал упорно избегал среднего слоя. и фигачил работу с репозиторием прям в контроллере. т.е. вызовы репозитория и какая то там логика была внутри контроллера.как-то странно кмк, у нас вот наоборот: универсальный контроллер - это десяток классов, а все остальное в сервисах.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829559
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно подробнее? не совсем понял.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829560
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я как то был в проекте. там был кстати тоже вроде 4 эндпойнта и всё. остальное они рулили через кейсы. т.е. длиннющая портянка кейсов которая решала на какой сервис уходит запрос. но проект был на тот момент 10+ лет и наерное тогда писали только так :) не знаю чем мотивировали скажем использование этого вместо того чтоб создать новый контроллер с прописанным названием в пути. но вот было такое вот решение.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39829562
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTможно подробнее? не совсем понял.дак любой hello world по контроллеру
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39830167
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT, у спринга сто лет есть аннотация для репозитораия, которая выставляет его методы через web. Даже контроллер не нужен!! Фигачь прямо в репозитории!

RepositoryRestResource - наше все!

По сути, если проект делает один человек и этот проект довольно примитивный, то можно фигачить что угодно куда угодно.
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39832187
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTсобссно что думаете вы?

ИМХО Слоя приложения определяется доменной моделью которой он оперирует.
Если доменная модель репозитария == доменной модели контроллера, то прокладка в виде сервисного слоя как бы и не нужна.
Явно видно это на примеры элементарных CRUD-приложений, когда слои Controller, Service и Repository ничем друг от друга не отличаются (особенно если использовать Spring Data JPA)
...
Рейтинг: 0 / 0
трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
    #39832238
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulЯвно видно это на примеры элементарных CRUD-приложений, когда слои Controller, Service и Repository ничем друг от друга не отличаются (особенно если использовать Spring Data JPA)их ещё нет, когды мы задались вопросом, нужны они или нет? Будем их писать или нет?
)))
Поэтому я вас понял, но расплывчато имхо.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / трипл-таер архитектура (но не совсем) контроллер->сервис->репозиторий
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]