Можно ли по-прежнему использовать DataMapper для Rails?

Я хочу использовать более отдельную систему для своих моделей в проекте Ruby on Rails. Похоже, решением был DataMapper. Однако я вижу, что ни один из их репозиториев не обновлялся за последний год, и при установке в проекте Rails 4 у ​​него возникают конфликты зависимостей версии gem с более новыми Gems. Поиск не дает никакого контента при использовании его с Rails 4.

Каково его состояние сейчас? Должен ли я использовать его, или что-то еще?


person Jonah    schedule 09.08.2013    source источник


Ответы (5)


Как человек, который использует DataMapper каждый день на своей работе, я бы порекомендовал придерживаться ActiveRecord, если вы не подключаетесь к устаревшей базе данных, схему которой вы не контролируете (но я бы также рассмотрел Продолжение, если это так). Помимо того факта, что это EOL (как указал сопровождающий в списке рассылки), многие гемы, которым требуется постоянство модели, будут поддерживать ActiveRecord, но очень редко они будут поддерживать DataMapper, поэтому рассчитывайте реализовать поддержку самостоятельно. По моему опыту, если я найду ошибку, я знаю, что мне также придется исправить ее самостоятельно из-за низкого использования / отказа от DataMapper.

Как упомянул danmanstx, сопровождающие сейчас в основном сосредоточены на Ruby Object Mapper (ROM), который раньше был DM2. Несмотря на то, что некоторые части ПЗУ являются полнофункциональными, у них до сих пор нет даты выпуска, насколько я знаю (см. дорожную карту). ).

Если вы посмотрите на ветку release-1.2 соответствующих драгоценных камней DM, вы увидите, что время от времени она получает незначительные обновления. Тем не менее, есть сотни проблем, по всем драгоценным камням DataMapper, многие из которых старше 2 лет, которые просто не будут необходимо решить, потому что просто не хватает сопровождающих DataMapper (и я не виню их за желание работать над чем-то новым!).

Вы правы в последних версиях RubyGems DM gems, имеющих конфликты версий. Если вы хотите использовать последнюю стабильную версию DM, я бы посоветовал использовать ветку release-1.2 нужных вам драгоценных камней DM, например.

gem 'dm-core', git: 'git://github.com/datamapper/dm-core.git', branch: 'release-1.2'
person Abe Voelker    schedule 09.08.2013
comment
Отличный ответ, спасибо @Abe. Я думаю, что успешно реализовал шаблоны модели предметной области/сопоставителя данных поверх ActiveRecord. Было бы неплохо, если бы что-то такое простое поддерживалось Rails. *пожал плечами* - person Jonah; 10.08.2013

Вам действительно следует взглянуть на Sequel, если вы рассматриваете DataMapper, FWIW я буду переходить с ActiveRecord на Sequel.

Однако, если вам нравится самоуверенная идеология Rails, вам не следует искать дальше ActiveRecord для наименьшего трения.

Без неуважения к тяжелой работе сообщества Rails и разработчиков, но после изучения эволюции областей видимости, условий ассоциации, отношений и ассоциаций, вложенных атрибутов, инициализации записи, предложений упорядочения на основе строк, строк поиска, хэшей и легкое выражение и составление запросов или эффективное повторное использование областей видимости, проверка связанных ошибок модели, странности построения родительских и дочерних ассоциаций, плохая документация, и все это не сочетается хорошо, вы также можете решить перейти на явно более продуманную ORM, такую ​​​​как Sequel.

Точно так же вы можете взглянуть на идеологию Rails (будучи беззастенчиво самоуверенным) и подумать, что может подойти лучше, если вы предпочитаете выбор и концептуально чистый подход в современной веб-инфраструктуре. Rails 4 стал для меня последним ура, привет Sinatra/Padrino/Sequel, Postgres/Redis/Solr и Backbone/Marionette/Eco/Coffeescript… мой самоуверенный фреймворк для веб-разработки :)

person Andrew Hacking    schedule 20.08.2013

DataMapper был изменен на DataMapper2, а затем на ruby-сопоставитель объектов.

его можно найти здесь https://github.com/rom-rb/rom

person danmanstx    schedule 09.08.2013
comment
Значит, пока это непригодный для использования проект? - person Jonah; 09.08.2013
comment
ПЗУ сильно зависит от нескольких драгоценных камней. Разработчики обычно работают над ними, а не над ПЗУ - person SystematicFrank; 29.01.2014

На моей работе мы столкнулись со многими проблемами с DataMapper. В конце концов, после долгих исследований и разговоров с разработчиками, я понял, что это тупиковый проект. Я задокументировал причины, по которым мы решили отказаться от него здесь:

http://opensourceame.com/why-we-abandoned-ruby-datamapper/

person David Kelly    schedule 12.02.2014

Есть еще одна жемчужина для достижения развязки DataMapper в Ruby. Он называется Datamappify.

Еще один хороший проект находится в разработке и нуждается в помощи: Virtus, rom-rb и Продолжение (уже упоминалось в этой ветке).

Важно, чтобы рубисты изучили и попробовали другой подход к созданию программного обеспечения на Ruby. У нас есть Падрино.рб, Виноград, Стеллаж и так далее.

person hlegius    schedule 21.11.2013