Здравствуйте, Буравчик, Вы писали:
Б>Здравствуйте, Разраб, Вы писали:
Б>Статья "От внедрения зависимостей к отказу от зависимостей"
Б>https://habr.com/ru/companies/jugru/articles/545482/
Очень странный код, дико странный.
в контроллере находятся какие-то репозитории и еще какие-то доп сервисы. полная хрень.
первое что должно быть это сервис, который отвечает за логику резервирования, контракт этого сервиса краеугольная задача.
1) проверка резервирования maitre.checkReservation(... reservation parameters): ReservationAttempt
checkReservation — создает попытку резервирования, вероятно блочит места для другого резерва, с каким-то TTL , возможно с приоритетами и т.д., наружу отдает или id попытки или метадату,
чтобы потом можно было по id получить нужные детали
2) maitre.reserve(reservationAttempt)
резервирует ранее выбранные места в соотвествии с попыткой.
сервис скорее всего будет использовать какой-то репозиторий чекеры и прочую муть, все что можно сделать статикой, надо делать статикой, в любом случае все состояние хранится в базе и в общем случае обращение к базе.
ФП хорош на пайплайнах, когда есть вход, цепочка обработки и выход, а тут банальная бизнес логика манипулирования состоянием которую надо корректно разложить по абстракциям.
В общем автору бы поучиться код писать, вместо книжек.