Чем паттерн Data Mapper в SQLAlchemy концептуально отличается от Active Record в Django ORM?

Data Mapper отделяет хранение объектов от их поведения; в SQLAlchemy этим занимается ORM и Session. Active Record связывает объект записи с методами сохранения и поиска, как у моделей Django.

Короткий ответ

Что ответить на собеседовании

Data Mapper отделяет хранение объектов от их поведения; в SQLAlchemy этим занимается ORM и Session. Active Record связывает объект записи с методами сохранения и поиска, как у моделей Django.

Подробный разбор

Ответ с пояснениями

Data Mapper отделяет хранение объектов от их поведения; в SQLAlchemy этим занимается ORM и Session. Active Record связывает объект записи с методами сохранения и поиска, как у моделей Django.

В Django экземпляр модели обычно сам предоставляет save() и delete(), а запросы доступны через менеджер модели. В SQLAlchemy Session отслеживает изменения и координирует запись объектов; возможны разные способы mapping. Это различие ответственности, а не запрет бизнес-методов или абсолютная независимость от ORM. На практике архитектура зависит ещё и от того, как команда организует сервисы, транзакции и доменные правила.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее