на этапе чтобы научиться работать со слоями
Я выделил есть 4 слоя
1) DAL: хранит в себе Entity и Repository
2) Application: хранит в себе EncodeSerivce, DecodeService, InputValidator
3) WebApi: хранит в себе контроллеры и DTO
4) Domain
Вопрос: что должен в себе хранить слой Domain ?
сущности, константы
Не совсем понятно
Ты примеры не смотрел у других людей?
Смотрел один репозиторий, но там таких слоев вообще нет Сейчас ещё гляну В основном по видосам пытался понять или у гпт
Domain это ядро монолита, к которому имеет доступ каждый иной слой, и так принято что там лежат сущности, так как у тебя на них и построено всë остальное.
Может он не нужен?
У него слоёная архитектура, там по другому
ну я пока не знаю как правильно, хочу хоть как-нибудь сделать чтобы показать можно было вроде нашел three layer architecture , тут просто webapi domain и dal
Да, три слоя норм, api ходит в domain/app, а он уже в dal. При этом api в dal не ходит и про него не знает вообще, т.е. перепрыгивать слои нельзя. А сбоку уже шарится между всеми инфра всякая, типа логирования
InputValidator на стороне приложения должен же быть, не на стороне бизнеса?
А что есть сторона приложения и что - сторона бизнеса в разрезе слоёв?
ну я о том, что невалидные данные не должны приходить в бизнес то есть мы их должны отсекать до того, как затронем бизнес слой
На каждом слое проверять нужно, если типами не гарантируется. Domain и app в данном случае - одно и то же может быть, т.е. один слой.
ну бизнес это основная логика и плюс обращение к бд приложение - это после реквеста и до бизнеса
Бизнес - это не обращение к бд 🤔
я имел ввиду путем обращения к репозиторию из dal
Что после реквеста и до бизнеса?) Очень размазанно сейчас формулируете
ну как я понимаю, получили запрос, контроллер вызвал сервис в Application. А Application уже дергает бизнес слой
А что в апп тогда будет? Зачем это лишний слой?
ну вот я и думаю, нужен ли он потому что, как писал выше, валидацию входных данных от юзера не засунуть в бизнес слой и вебапи тоже этим не занимается
Почему не засунуть то? Любой слой должен проверять входные данные
ну если данные не валидные пришли в запросе, то мы сразу даём error response, то есть ещё не зашли в бизнес слой
https://www.youtube.com/watch?v=lkmvnjypENw&ab_channel=dotnet
пролистал видос по быстрому - надо чтото попроще, вроде как 3 слоя самое норм
Обсуждают сегодня