当前位置: 首页 > 面试题库 >

基于Scala的框架如何堆叠以构成完整的Scala新手-Lift,Play,Circumflex等

公良英资
2023-03-14
问题内容

最近,在基于Scala的Web框架社区中发生了很多移动。来自Rails,Rake,ActiveRecord和迁移-
这是在其中构建生产站点的一个好的Scala框架吗?

如果可以提供更好的可维护代码,则对性能的影响很小。如果内置了协作功能,例如DB迁移之类的东西,那也很好。


问题答案:

(主持人编辑:David Pollak是Lift框架的创始人)

如果您想要一个简单的Scala Web框架来执行CRUD和一些页面,Play是我的建议。它有一个不错的开发周期,并且简单易上手。

如果您要构建的应用程序将不断增长并处理大量流量,则我建议使用Lift ;-)

Lift支持多种ORM系统。映射器很像ActiveRecord。映射器不使用迁移,而是使用Schemifier从映射器定义中读取架构定义,并相应地更新RDBMS。

如果您要构建任何类型的Ajax或Comet应用程序,Lift是正确的选择。Lift的Ajax支持非常简单…只需将服务器上的功能与Ajax控件关联即可。当用户单击按钮,下拉选择等时,该函数将被调用。

在所有框架中,Lift具有最佳的服务器推送(Comet)支持。请访问http://liftweb.blip.tv/file/2033658/了解有关Comet支持的信息。

在性能和可伸缩性方面,Lift为Foursquare和其他人流量大的站点提供了动力。

就简洁的代码而言,Lift非常简洁,但类型安全(对于Play和其他使用String名称表示变量的框架,情况并非如此)。因此,您将获得一种类型安全,可维护性很强的REST支持,此处也对此进行了简要介绍:http
:
//www.assembla.com/wiki/show/liftweb/REST_Web_Services



 类似资料:
  • 我正在寻找的ans是通过Play-Scala连接到cassandra所需要的依赖项。cassandra版本2.2.0,play版本2.4 我的build.sbt文件: 惰性val root=(文件中的项目(“.”))。enablePlugins(PlayScala) scalaVersion:=“2.11.6”libraryDependencies++=Seq( “com.typesafe.akk

  • 问题内容: 我正在尝试在CometActor中检索url参数,以验证数据源是否与目的地匹配,例如,某个用户从A室发送一条消息,该消息仅在A室而不是B室或C室中接收和显示。 我试过了: 但是它总是空的,可以做到吗?还是有另一种方法可以阻止Comet消息到达不应该去的地方? 在此先感谢您的帮助,非常感谢:) 问题答案: CometActor存在于会话之外,因此无权访问(大部分)会话。解决方案是使用包含

  • 问题内容: 在运行基于新项目的项目后,我无法清理它-生成的人员仍在下面, 我如何成功清理它? 问题答案: 参见http://www.playframework.org/documentation/2.0/PlayConsole

  • 问题内容: 我正在尝试使用JSON在浏览器和我的应用之间发送数据。 我正在尝试使用Lift 1.0创建和解析JSON字符串,但是由于某种原因,我无法解析刚刚构建的JSON: 如何在Scala / Lift中以编程方式构造有效的JSON消息,也可以再次对其进行解析? 问题答案: 您使用的是Lift 1.0 ,它会生成带有单引号字符串的JSON,并尝试使用仅支持双引号字符串的scala解析器进行解析。

  • 对这个问题的回答表明,Scala中Option上的fold方法是一种变态。从维基百科上看,一个catamophism是“从一个初始代数到其他代数的唯一同态。这个概念已经作为折叠应用到函数编程中”。所以这似乎是公平的,但却引导我把一个初始代数作为F-代数范畴中的初始对象。

  • 我是新手,并使用SBT构建了一些简单的Scala应用程序/教程。我继续使用Play框架,并使用生成了一个空项目。我做了一些测试,以确保它正确生成。这很好,我添加了sbt-idea插件,,以生成一个IntelliJ项目。这就是地狱破裂的地方。 我必须找到正确的Scala、SBT、Play框架和sbt想法版本组合才能完美编译。否则,编译会出现正确的错误或警告,让我猜测。到目前为止,我拥有的最好的“组合