Встречается на собеседованиях • сегодня
Работал ли с БД через паттерн Repository
Да, работал. Repository — это слой абстракции между бизнес-логикой и хранилищем данных (например, БД). Он инкапсулирует логику доступа к данным, предоставляя интерфейс для CRUD-операций.
Пример:
python
class UserRepository:
def __init__(self, session): # session может быть SQLAlchemy, Django ORM и т.д.
self.session = session
text
def get_by_id(self, user_id):
return self.session.query(User).get(user_id)
def add(self, user):
self.session.add(user)
self.session.commit()
def delete(self, user):
self.session.delete(user)
self.session.commit()text
**Плюсы:**
- Изоляция кода от конкретной СУБД.
- Упрощение тестирования (можно подменить репозиторий на mock).
- Единая точка управления операциями с сущностью.
**Нюансы:**
- Не стоит смешивать бизнес-логику в репозитории.
- Для сложных запросов можно добавить методы типа `filter_by_status`.
Использую его в связке с Unit of Work или сервисным слоем.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы