[英]Does ORM for social networking sites makes any sense?
我之所以这样问是因为我需要知道是否在社交网站上使用ORM根本没有任何意义。
我为什么ORM不适合社交网站的论点是:
基于我有限的经验,这是我有限的理解。 您在构建社交网站方面有什么经验? 我的观点有效吗? 在不担心使用ORM的情况下使用裸SQL是否蹩脚? ORM可以帮助建立社交网站有什么意义?
使用ORM的价值在于通过自动完成将查询结果分配给对象字段的繁琐工作,以及跟踪对象字段的更改以便将它们保存到数据库,从而帮助加快开发速度 。 因此,术语对象关系映射 。
ORM对于数据库可移植性没什么价值,因为您只使用您部署的一个数据库。
ORM的运行时性能方面并不比自己编写纯SQL更好,并且通常要差很多。 正如您所提到的,查询生成的通用方法通常会产生天真的错误并导致冗余查询。 同样,好处在于开发时间,而不是运行时效率。
使用ORM而不使用ORM似乎不会对可伸缩性产生巨大影响。 其他可扩展性更强大的技术包括:
有些人主张使用云计算或分布式非关系数据库将数据管理转移到分布式架构。 在获得大量用户之前,这可能不是必需的。 一旦你增长到一定程度,所有规则都会改变,你可能无论如何都不能使用RDBMS。 但除非你是雅虎,Facebook或LinkedIn的数据架构师,否则不要担心 - 云计算过度炒作。
人们普遍认为,数据库始终是Web应用程序的瓶颈,但也有一种情况是提高前端的效率至少同样重要。 参看 史蒂夫索德斯的书。
编程实体框架 (2009)中的Julia Lerman,p.503表明,直接使用DataReader和使用Microsoft的LINQ to Entities之间的查询执行成本增加了220%。
另请参阅Jeff Atwood在All Abstractions上的帖子是Failed Abstractions ,他表明使用LINQ至少是使用普通SQL的两倍,即使是以天真的方式。
以下是我对你的观点的回应:
IMO,ORM可以帮助您编写更清晰,更清晰的代码。 如果你使用它可能会导致过多的查询,但这绝不是一个规则。 如果我是你,我会开始使用框架的ORM和最佳实践,如果你发现自己需要ORM不提供的功能,那么只能使用SQL。
另请注意,在Web应用程序中,许多人正在远离SQL数据库。 ORM可以帮助您迁移到非关系数据库(正是因为您的应用程序代码中没有SQL)。 看看在Google的App Engine中使用JDO和JPA。
恕我直言。 ORM是需要的。
它允许您以OOP方式访问数据库,无论是否有多个数据库。
您的网站足够大,扩展成为一个问题的可能性非常小,那么为什么通过在原始SQL而不是ORM中执行所有操作来过早优化? 假设数据库和应用程序设计合适,您可以在数据库中投入更好的硬件。 虽然您可能需要为创建朋友图等内容编写原始SQL,但是当有人更改电子邮件,发送私人消息,上传照片等时,更新数据库等所有小事情? 使用ORM可以简化您必须执行的所有简单数据库任务,同时仍允许您在绝对必要的地方处理代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.