我想知道你们对DataMapper有什么看法,相较于Rails 3中改进后的ActiveRecord它带来了哪些好处。
感谢您的意见。
感谢您的意见。
我更喜欢使用DM而不是AR。我感觉DM实际上是一个ORM,而AR只是SQL的包装器。DM使切换数据存储非常容易。DM的查询语法更加统一等等。SEL(策略性贪婪加载)也使DM看起来更像对象存储而非AR。
此外,DM类事先定义属性使得代码更易读。自从使用DM,我再也没有错过迁移。(即使您真的需要它们)。在Rails 3中,我几乎完全使用DM。
我在Rails 2中使用Active Record,在Merb和Rails 3中使用DataMapper——现在我每天都使用DM/Rails 3。我已经阅读了AR3的相关内容,但只在一个小项目(内部应用程序)中使用过。
我发现我真正关心的唯一区别是DM的strategic eager loading。它很少做到人们所希望的,而且它所做的(正确或错误),它都是用FM完成的。
使用AR的显式预加载,就没有什么疑问,它会说出它要做的事情,并且(通常)会做到。
虽然“自动”预加载听起来不错,但我发现它对我有两个负面影响:
否则,我发现AR和DM是相同的东西,只是有不同的点。与像Sequel这样的东西不同。