Web框架中的完整堆栈和最小值之间有什么区别

时间:2015-05-12 00:51:48

标签: scala web-frameworks

我是新程序员并且非常好奇,我想知道在完整堆栈或最小Web框架之间存在引用时的区别,为什么使完整堆栈框架成为完整堆栈和/或为什么最小的Web框架是最小的,例如 在scala中玩(完整)和scalatra(最小),提前感谢你们。

1 个答案:

答案 0 :(得分:2)

这在http://en.wikipedia.org/wiki/Microframework解释,其中微框架与最小框架无关。这是一个问题,包括什么范围的功能,其中“完整”意味着相对完整,虽然可能“基本”功能和“最小”意味着接近裸骨功能。 Scalatra只是一个带有DSL(特定于域的语言)的servlet容器,用于添加扩展,而Play包含更为广泛的核心功能,如http://en.wikipedia.org/wiki/Play_framework所列。这些术语是相对的,在技术上没有精确定义,并且通常由市场营销部门调整以达到目标细分市场,例如那些寻找新应用程序的一体化框架或那些寻找微小且轻松插入已经开发的应用程序的东西。

有趣的是,尽管Play框架被吹捧为完整的Web框架,但将其称为完整堆栈框架并不恰当,因为其供应商TypeSafe将其作为TypeSafe Stack的一个组件进行销售,其中还包括Akka作为另一个主要组成部分(https://www.typesafe.com/blog/introducing-typesafe-stack-20)。 Akka被称为“用于开发基于JVM的并发和分布式应用程序的工具包”(http://en.wikipedia.org/wiki/Akka_%28toolkit%29),但它也可以称为框架,因为它长期以来具有官方和重要的扩展(例如序列化)并且可以扩展ad hoc与微型Web服务器或servlet容器,如scalatra。

另一个例子,Butterfly Components被称为“超轻量级Java应用程序堆栈和工具箱”(http://butterfly.jenkov.com/introduction.html)而不是框架,因为这是它的发明者的偏好,他似乎并不关心营销它。在这种情况下,“轻量级”是根据所有罐子中的字节数定义的,因为“大小确实很重要”。

因此,它取决于历史,文化,营销和技术因素或个人偏好,即所谓的框架,堆栈,工具包或工具箱。我已经使用Scala和Java中的Akka开发了用于图像处理的应用程序并将它们视为Akka应用程序,因为它们的体系结构主要是在Akka的功能框架中定义的,其中Scala和Java代码就位于其中。另请注意,Scala编译器开发人员Miquel Garcia在其http://magarciaepfl.github.io/scala/#GettingStarted文章的第1.1节中将Akka称为“主要Scala框架”。