Встречается на собеседованиях • сегодня
Какую проблему решает использование паттерна Repository над ORM
Паттерн Repository добавляет уровень абстракции между бизнес-логикой и слоем доступа к данным. Основные преимущества:
-
Изоляция бизнес-логики от деталей работы с БД. Бизнес-слой работает с репозиторием, не зная, используется ли ORM, raw SQL или что-то еще.
-
Упрощение тестирования - можно легко подменить реальный репозиторий mock-объектом.
-
Централизация логики запросов - все запросы к данным находятся в одном месте.
-
Гибкость - можно менять ORM или способ хранения без изменений в бизнес-логике.
Пример:
python
class UserRepository:
def __init__(self, session):
self.session = session
def get_by_id(self, user_id):
return self.session.query(User).get(user_id)
def add(self, user):
self.session.add(user)
# В бизнес-логике:
repo = UserRepository(session)
user = repo.get_by_id(1)Без репозитория бизнес-логика напрямую работала бы с ORM, что усложняет поддержку и тестирование.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы