Подтвердить что ты не робот

DataMapper против ActiveRecord в Rails 3

Мне любопытно, что вы, ребята, думаете о DataMapper и о том, какие преимущества он приносит за новый и улучшенный ActiveRecord в Rails 3.

Я ценю ваше мнение.

4b9b3361

Ответ 1

Я предпочитаю DM до AR. Я считаю, что DM на самом деле является ORM, тогда как AR - всего лишь оболочка вокруг SQL. DM очень легко переключаться между хранилищами данных. Синтаксис запроса DM намного более однородный и т.д. SEL (стратегическая загрузка) также делает DM более похожим на хранилище объектов, чем AR.

Кроме того, классы DM определяют свойства спереди и делают код более читаемым. Я никогда не пропускал миграцию после прихода в мир DM. (даже если вы можете иметь их, если хотите). С рельсами 3 я почти исключительно использую DM.

Ответ 2

Я использовал Active Record в Rails 2 и DataMapper в Merb и Rails 3-я теперь использую DM/Rails 3 ежедневно. Я читал AR3, но использовал его только в одном небольшом проекте (собственное приложение).

Я нашел единственное различие, которое мне действительно волнует: DM стратегическая загрузка.. Он редко делает то, что можно было бы надеяться и что он делает, правильно и неправильно, это с FM.

С явной активной загрузкой в ​​AR, нет никаких сомнений в том, что должно произойти: оно говорит, что он делает и (как правило) делает то, что говорит.

В то время как "автоматическая" загруженная загрузка звучит хорошо, я считаю, что для меня есть два отрицательных результата:

  • не несущественное количество времени, затрачиваемого на поиск источников чрезмерного запроса
  • код, заваленный псевдо-нетерпенными загрузками, где отношения материализуются и отбрасываются, чтобы просто их перенести и карту идентичности способами, которые иногда не "прилипают" и никогда не являются самодокументируемыми.

В противном случае я считаю, что AR и DM - это те же самые звери с разными пятнами. В отличие, скажем, Sequel.