Рефакторинг из ActiveRecord в DataMapper - PullRequest
4 голосов
/ 08 октября 2008

Реорганизован ли вы из ActiveRecord в DataMapper ? Какие условия побудили переключателя? В первую очередь я интересуюсь веб-приложениями, но хотел бы знать, какие проблемы сопутствуют этому переходу в любой среде.

Ответы [ 3 ]

7 голосов
/ 08 октября 2008

Мне действительно нравится шаблон ActiveRecord за его простоту. Тем не менее, я отошел от этого для больших веб-приложений. Я считаю, что по мере того, как проект на основе ActiveRecord становится более сложным, объекты ActiveRecord становятся большими и загружаются слишком большим количеством кода.

Путем введения шаблона репозитория (по существу, Data Mapper) классы модели предметной области упрощаются, а логика отображения данных / доступа к данным сохраняется отдельно.

Кроме того, довольно сложно (невозможно?) Издеваться над объектами ActiveRecord из-за их использования статических методов.

1 голос
/ 22 января 2009

Я использую инфраструктуру, которая предоставляет Шлюз Таблиц Данных и Шлюз Строковых данных как встроенные классы, которые просты в использовании, потому что все, что я должен указать, - это первичный ключ (если не просто 'id') и имя таблицы (если не совпадает с названием класса). Однако недавно я обнаружил в процессе рефакторинга, что эти шаблоны начинают ухудшать момент, когда между доменом и базой данных должно происходить более сложное сопоставление.

Например, в настоящее время я выполняю рефакторинг кода для одного веб-сайта для использования Data Mapper, чтобы я мог использовать наследование отдельных таблиц (использует Inheritance Mapping). По сути, всякий раз, когда отношения между базой данных и доменом становятся более сложными, чем один-к-одному, я настоятельно рекомендую использовать Data Mappers.

0 голосов
/ 08 октября 2008

Я написал интегрированную систему сборки поверх PDE-Build, используя camp . Сначала я использовал ActiveRecord, но мне нужен неблокирующий потокобезопасный доступ к базе данных, поэтому я перешел на использование Data Mapper.

Я получил свою долю горя от ошибок, но последние версии кажутся довольно стабильными.

...