Что такое Repository Pattern?

Senior
279 просмотров
AFK Offer AI

Repository — абстракция над хранилищем данных. Интерфейс: get(id), save(entity), delete(id), list(filters). Реализация: PostgresUserRepo, MongoUserRepo, InMemoryUserRepo. Use case работает с интерфейсом, не знает про SQL. В Python: Protocol или ABC для интерфейса, конкретный класс с SQLAlchemy/asyncpg для реализации. Тесты используют InMemoryRepo. Плюсы: легко менять БД, тестируемость, разделение ответственности. Минусы: дополнительный слой абстракции, может быть избыточен для простых CRUD.

Следующий вопрос

Как оптимизировать SQL запросы из Python?