Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 类型安全平台中的光滑和异常_Scala_Playframework_Slick_Anorm_Typesafe - Fatal编程技术网

Scala 类型安全平台中的光滑和异常

Scala 类型安全平台中的光滑和异常,scala,playframework,slick,anorm,typesafe,Scala,Playframework,Slick,Anorm,Typesafe,我已经开始使用Scala,Play框架,目前我正在从Typesafe反应式平台中发现其他技术。然而,我只是对要使用的持久层技术有点困惑。有来自Play Framework的Anorm,它是被动平台的一部分,还有Slick,它也是平台的一部分。未来是否有计划在整个平台中选择其中一种(例如,离开Anorm,推荐Slick作为主要的Scala DB技术)?有没有可能说其中一个项目目前正处于更积极的发展之中,前景更加光明?或者Typesafe是否建议将哪一个用于Typesafe反应式平台 谢谢。这是一个

我已经开始使用Scala,Play框架,目前我正在从Typesafe反应式平台中发现其他技术。然而,我只是对要使用的持久层技术有点困惑。有来自Play Framework的Anorm,它是被动平台的一部分,还有Slick,它也是平台的一部分。未来是否有计划在整个平台中选择其中一种(例如,离开Anorm,推荐Slick作为主要的Scala DB技术)?有没有可能说其中一个项目目前正处于更积极的发展之中,前景更加光明?或者Typesafe是否建议将哪一个用于Typesafe反应式平台


谢谢。

这是一个相当主观的问题,但可以找到一些客观数据:

  • 来自主播放框架github存储库的anorm

  • Slick是一个较新的项目

  • 据说PlayFramework计划在未来迁移到Slick(来源:第20张幻灯片)

    Slick将是中的官方数据库连接器 播放/类型安全堆栈

尽管如此,他们有不同的方法。Anorm不知道底层数据库,它只提供了编写SQL查询的更好方法;另一方面,Slick是特定于db的,它为查询提供了类似scala的语法


个人意见 在过去的两年里,我一直在scala中积极从事SQL项目的工作,我的团队已经从Anorm转移到Slick来开发新项目。我们还考虑在现有的代码库中从Anorm迁移到Slick。
部分原因来自个人品味,部分原因来自上述客观数据,这让我认为Anorm将逐步停产。

它们都是正在积极开发的完全不同的项目。归根结底,你到底喜欢还是不喜欢ORM?@m-z Slick不是ORMBut,它是“ORM式的”。@m-z它是一个数据持久层。它与ORMs有一些相同的概念,但一旦你开始使用它,你就会意识到它是一个完全不同的野兽。将其视为ORM会导致设计糟糕的数据层和意外行为(我凭经验说)@m-z我主要是Java EE开发人员,有JPA/Hibernate的经验,所以我仍在尝试了解Slick与经典ORM概念的区别。个人:Anorm只做了一件事,而且做得很好:解析SQL结果,没有DB假设。Slick根据类型进行了很多自动映射,但这并不适用于所有DB情况。即使持久性也需要特定的解析,然后Slick和Anorm都返回到映射本机结果集。对我来说,这取决于需要特定解析的案例的比例。如果多数是具体的,我更喜欢Anorm(更专注于目标,指纹更小)。我想知道在性能方面你会选择哪一个?或者简单地说:哪一个更快?