ИСПОЛЬЗУЙ ЭТО ДЛЯ БАЗЫ ДАННЫХ! ПАТТЕРН РЕПОЗИТОРИЙ В ПИТОНЕ

preview_player
Показать описание
Андрей Иванов - Питон

Используйте мою ссылку в криптобирже OKEX и получите -10%:

Поставьте лайк и подпишитесь!
#Python #Питон #программирование #programming
Рекомендации по теме
Комментарии
Автор

Может сразу записать туториал по чистой архитектуре на python?

sauvignonblanc
Автор

Если кратко, то используйте один из принципов solid - DIP. Как я понял он эквивалентен этому паттерну.

АлексейДромов
Автор

А как же базовый класс репозитория общий для всех репозиториев ? Метод save зачем в этом классе ведь репозиторий это не про сохранение, надо только добавление и извлечение ? И главный вопрос как это тестировать без участия БД ? Тема репозитория не раскрыта

RCCopterChannel
Автор

Очередной раз посмотрев, наконец-то вкурил.
У меня в проекте слои роуты/фекторис/сервисы
роуты - отвечают за роуты
фекторис - бизнес логика
сервисы - работа с БД (орм и т.д.)
Переключение реализации. Скорее всего нужно использовать паттерн "стратегия". поверх слоя "репозитория". Например, у вас класс использует транзакции и ОРМ, а другой только SQL. Со стратегией будет проще переключиться

AlexandrSpirit
Автор

крутое видео, не нашел объяснения на java, пришел сюда. Единственное не понял отличия от dao при таком объяснении

sigmazetamale
Автор

Вопрос: обработку исключений, например, методу get() репозитория передан несуществующий ID, лучше выполнять в слое сервисов (services.py) ?

greendramost
Автор

А есть пример кода где связаны все вместе, pydantic, sqlalchemy и repository ?)

david_shiko
Автор

Привет! А как по твоему, корректно ли в репозиторий класть логику фильтрации?

Например сделать метод list с параметрами вроде "возраст", " Город" И тд, и в этом методе реализовать базовый запрос "select * from table" И далее делать ифы на параметры для подстановки условий?
If age:
Query = query.where(user.age==age)

Надеюсь суть вопроса понятна :-)

Это же вроде как логика, но в тоже время относится к работе с данными..

TyurinOleg
Автор

Вопрос:
Если это абстракция для вынесения логики построения запроса. Можно ли сделать передачу модели и запроса для некоторых универсальных классов? Т.е. если есть запросы с фильтрами, одинаковыми для 1 и более моделей, то проще ведь сделать некий универсальный класс?

AlexandrSpirit
Автор

Я могу ошибаться, но это же менеджеры моделей (в django)

max_bstr
Автор

Вопрос: можно ли считать Managers в Django репозиториями? Вроде как я могу в менеджеры и весь crud единичной модели перенести, и разные query делать. Но встречаю очень много статей, где говорят, что в Django нет DDD, что в Django ActiveRecord. Можно ли считать, что я следую DDD, если все операции с бд у меня идут через менеджер (а в Django они именно через дефолтный менеджер идут как минимум)?

МатвейКоноплёв-бю
Автор

Может сразу пример на SQLAlchemy? Что бы начинающие могли переписать и сразу "ручками" попробовать в деле?

AlexandrSpirit