Информация об изменениях

Сообщение Re[2]: Что такое Dependency Rejection от 18.10.2025 13:01

Изменено 18.10.2025 13:08 diez_p

Re[2]: Что такое Dependency Rejection
Здравствуйте, Буравчик, Вы писали:

Б>Здравствуйте, Разраб, Вы писали:


Б>Статья "От внедрения зависимостей к отказу от зависимостей"

Б>https://habr.com/ru/companies/jugru/articles/545482/

Очень странный код, дико странный.
в контроллере находятся какие-то репозитории и еще какие-то доп сервисы. полная хрень.

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

1) проверка резервирования maitre.checkReservation(... reservation parameters): ReservationAttempt
т.е. на вход дали параметры резервирования, на выходе получили попытку резервирования, если да у нее есть возможные размещения и TTL

2) maitre.reserve(reservationAttempt)



checkReservation — создает попытку резервирования, вероятно блочит места для другого резерва, с каким-то TTL , возможно с приоритетами и т.д., наружу отдает или id попытки или метадату,
чтобы потом можно было по id получить нужные детали


maitre.reserve(reservationAttempt)
резервирует ранее выбранные места в соотвествии с попыткой.


ФП хорош на пайплайнах, когда есть вход, цепочка обработки и выход, а тут банальная бизнес логика манипулирования состоянием которую надо корректно разложить по абстракциям.
В общем автору бы поучиться код писать, вместо книжек.
Re[2]: Что такое Dependency Rejection
Здравствуйте, Буравчик, Вы писали:

Б>Здравствуйте, Разраб, Вы писали:


Б>Статья "От внедрения зависимостей к отказу от зависимостей"

Б>https://habr.com/ru/companies/jugru/articles/545482/

Очень странный код, дико странный.
в контроллере находятся какие-то репозитории и еще какие-то доп сервисы. полная хрень.

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

1) проверка резервирования maitre.checkReservation(... reservation parameters): ReservationAttempt
checkReservation — создает попытку резервирования, вероятно блочит места для другого резерва, с каким-то TTL , возможно с приоритетами и т.д., наружу отдает или id попытки или метадату,
чтобы потом можно было по id получить нужные детали

2) maitre.reserve(reservationAttempt)
резервирует ранее выбранные места в соотвествии с попыткой.


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


ФП хорош на пайплайнах, когда есть вход, цепочка обработки и выход, а тут банальная бизнес логика манипулирования состоянием которую надо корректно разложить по абстракциям.
В общем автору бы поучиться код писать, вместо книжек.