Встречается на собеседованиях • сегодня
Что такое UnitOfWork
UnitOfWork — это паттерн, который отслеживает изменения объектов во время бизнес-транзакции и координирует запись этих изменений в базу данных. Он действует как контейнер для изменений, группируя их в единую транзакцию, что обеспечивает атомарность и согласованность данных.
Основные преимущества:
- Отслеживает новые, изменённые и удалённые объекты.
- Позволяет откатить изменения целиком при ошибке.
- Упрощает управление транзакциями.
Пример с SQLAlchemy:
python
class UnitOfWork:
def __init__(self, session_factory):
self.session_factory = session_factory
def __enter__(self):
self.session = self.session_factory()
return self
def __exit__(self, exc_type, exc_val, exc_tb):
if exc_type is not None:
self.session.rollback()
else:
self.session.commit()
self.session.close()
# Использование
with UnitOfWork(Session) as uow:
user = User(name='Alice')
uow.session.add(user)
# Автоматический commit или rollback
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы