Нет
можно поподробней?
В прикладном слое не должно быть таких зависимостей. Он не знает ни о каком фастапи меил, ни об алхимии
Прикладные сервисы не зависят от адаптеров. Они зависят от интерфейсов, которые потом должны быть реализованы в адаптерах
Совсем не в теме, но стало интересно — а где тогда должны быть прописаны специфические для фастапи (или другого используемого фреймворка) вещи? По названию кажется, что это как раз слой приложения/application..
Application стоит переводить как "прикладной"
а что он вообще тогда должен делать
Прикладной слой? Реализовывать основную логику программы.
мм, кайф, как он это будет делать без зависимости от фреймворка?
А какая тебе разница какой у тебя фреймворк если ты покупаешь товар? Или если создаешь задачу чтобы отвести кота к ветеринару? Да пофиг вообще
покупаешь товар? работа с бд
она в сервисах, да
Обращение к хранилищу. Пофиг при этом как оно реализовано
так мне сессию туда надо прокинуть
в хранилище, или ты про репозиторий?
ну а при чем тут слой логики
тоесть ты намекаешь на то что слой логики должен просто обращаться допустим к репозиторию и все?
принимать данные, вызывать нужные проверки, куда-то их применять, обращаться к разным адаптерам
если проверки - в адаптерах, это нормально?
да и смотри, тот же самый затык, чтобы из адаптера отправить почту мне нужно ее прокинуть с вьюхи , через прикладной слой
если это проверки не связанные с логикой - нормально. Например проверить что прислали число, а не строку. А если это уже связано с предметной областью: например, что скидка не может быть больше 146% - это уже не дело адаптера
и как мне тогда не зависеть от фреймворка?
базовую валидацию в фастапи выполняет вью
а вот пример как я создают интерактор (объект бизнес логики). Во вьюхе https://github.com/Tishka17/deseos17/blob/master/src/deseos17/presentation/web_api/new_wish/router.py#L26 При этом, обрати внимание - здесь никак не фигурируют детали создания этого всего. Оно сделано отдельно: https://github.com/Tishka17/deseos17/blob/master/src/deseos17/main/ioc.py
и откуда мой IoC получит объект мейла который почту отправляет?
что такое "объект мейла"?
тут первое это вьюха…
Обсуждают сегодня