我昨晚读了this post本,我注意到那是2006年的书.在ORM和数据库这件事上,我可以 Select 任何一种方式,但我只是想知道,考虑到这篇帖子是在2006年发布的,杰夫说的关于ORM的所有坏话是否仍然适用.
我昨晚读了this post本,我注意到那是2006年的书.在ORM和数据库这件事上,我可以 Select 任何一种方式,但我只是想知道,考虑到这篇帖子是在2006年发布的,杰夫说的关于ORM的所有坏话是否仍然适用.
这仍然是真的.
甚至比面向对象软件更糟糕的是,如果数据库没有按照预期的方式处理,它就会受到影响.它并不打算让您在它前面插入一些抽象层.
我认为不可渗透的抽象层就是试图建造一个乐高城堡,所有的部分都封闭在一个枕套中.SQL很难正确执行.它与过程编程没有很多相同的模式,一个的最佳实践可能与另一个相反.您需要能够浏览SQL语句中的每一项,并且非常清楚它的意图和实际用途.
许多人似乎认为,就像马蹄铁一样,接近就足够好了--如果出现正确的答案,那就意味着你已经接近成功了.在SQL中,这根本不是真的.
出于这个原因,RoR和ActiveRecord模式当之无愧地赢得了DBMS资源占用的名声.优化的ActiveRecord设计通常不是最优的SQL设计,因为它鼓励SQL语句分解.