5

DataMapper 아이디어는 ActiveRecord보다 definitely better입니다. RDBMS 및 NoSQL 상점을 포함하여 다양한 데이터 저장소 용 API가 하나 있습니다. DataMapper는 ActiveRecord보다 훨씬 똑똑합니다. 그것에는 "전략적 적재 적재"가 있습니다. 이 기능은 "N + 1 쿼리 문제"를 혼자서 지 웁니다. 또한 Text 속성과 같은 무거운 필드를 지연로드 할 수 있습니다. DataMapper를 사용하면 중첩 된 조건의 해시를 제공하여 복잡한 개체 그래프를 만들고 검색 할 수 있습니다. ActiveRecod는 프로덕션의 연결에 사용하기에는 적합하지 않습니다. include 메소드는 추악하고 설정 불가능합니다. 2010 년 10 월 Josh Symonds는 patch for this method을 작성하여 eager가로드되지 않도록 필드를 제외 할 수 있습니다. 그러나 그 경로는 무시되었고 오늘 우리는 같은 못생긴 방법을 포함하고 있습니다.ActiveRecord 대신 DataMapper를 사용하십시오.

화려한 AREL이 적용된 Rails3에서도 ActiveRecord는 레일에 가장 적합한 Orm과 거리가 멀습니다. "와우, 새로운 보석 metawhere가 Article.where(:title.matches => 'Hello%', :created_at.gt => 3.days.ago) 같은 멋진 코드를 작성할 수 있습니다."라고 말할 수 있습니다. 그러나 잠시 기다리십시오. DataMapper는이 상자를 지원합니다! 어쩌면 DataMapper처럼 보이게 ActiveRecord를 수정하는 것이 더 나은 orm을 확장하고 지원하는 것일까 요? DataMapper에 대한 자세한 내용은 http://datamapper.org/에서 확인할 수 있습니다.

필자는 이후 릴리스에서 레일스가 사용할 orm을 선택해야한다고 생각합니다. 이제는 데이터베이스 선택이 가능합니다. 그것도 단 하나의 옵션 "ActiveRecord"를 가지고, 사람들은 가능한 대안을 검색 할 것입니다. 레일을 배우기 시작했을 때 ActiveRecord에 대한 지원 만 있다고 생각했습니다. 그리고 나중에 나는 다른 것을 찾기 위해 노력조차하지 않았다.

왜 내가이 모든 것을 쓰고 있습니까? 나는이 좋은 ORM에 더 많은 관심을 기울일 필요가 있다고 생각한다. 인기 있거나별로 인기가없는 보석 개발자라면 DataMapper의 지원을 추가하는 것에 대해 생각해보십시오. DataMapper 커뮤니티는 ActiveRecord 또는 다른 ORM에서 마이그레이션 가이드를 작성하고 설명서를 최신 상태로 유지해야합니다. 저로서는 DataMapper 커뮤니티가 더 많은 사람들을 필요로하며 귀하가 그들 중 하나일지도 모릅니다. 이 ORM의 유일한 단점은 문서가 부족하여 도움이 될 수 있습니다.

그럼 어떻게 생각하십니까?

답변

4

레일 3을 사용하면 기본적으로 Datamapper를 사용할 수 있습니다. 그것은 당신이 당신도 --skip-활성 기록 옵션을 사용할 수 있습니다, 그냥이

 
    rails new project_name -m http://datamapper.org/templates/rails.rb 

레일 당신이 선택할 수 있도록 할 레일 (3)과 datamapper 사용할 않습니다. :)는 (간단되지 않을 수 있지만이.

그리고 그래, Datamapper 굉장합니다. :)

+0

나는 그것을 알고 그것을 사용했다. 하지만 그것은 그렇게 분명하지 않습니다. (레일스에서 ​​당신은 그것을 찾을 수 없습니다. "skip-active-record") – AlexParamonov

1

문서의 부족은 큰 문제입니다. DataMapper를 사용하여 데이터 바인딩을 시작한 이후 데이터 용 웹 인터페이스를 구현하기로 결정했습니다. 각각의 초심자로서 DM을 Rails에 통합하는 것은 엄청난 도전이었습니다. 따라서 궁금해서 DM/Rails 사용법을 보여주는 자료를 알고 계십니까? 계속 진행할 방법이 확실하지 않을 때 뭔가를 볼 수 있기를 바랍니다.

+0

나는이 길을 따라 왔고 그 사이에 DM을 완전히 포기했습니다. DM 메일 링리스트와 응답은 매우 느리게 진행됩니다. AR은 아마 DM만큼 간단하지는 않겠지 만, 앱으로 프로덕션에 들어가기를 원한다면 AR 주위에는 절대적으로 방법이 없다고 생각합니다. 아칸소 만의 엄청난 수의 보석처럼 AR 주변의 생태계는 AR을 고수 할 이유입니다. – lumpidu

관련 문제