Встречается на собеседованиях • сегодня

Работал ли с БД через паттерн 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 или сервисным слоем.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы