Leiningen,Compojure,Luminus和Ring之间的关系是什么?

时间:2014-01-17 12:57:08

标签: clojure leiningen compojure ring luminus

我开始了Clojure的新学习阶段。我想构建一个Web应用程序,但我不知道使用哪个。我在网上搜索了几个小时,我发现的所有东西都互相重叠,我对此感到有点困惑。

我有ASP.NET MVC和JavaEE的经验,所以如果有什么东西可以将Clojure网络编程与这些经历联系起来,我很高兴听到它。

Leiningen,Compojure,Luminus和Ring之间的关系是什么?

3 个答案:

答案 0 :(得分:11)

Leiningen 是一款构建工具。像Java世界中的Maven(事实上,它使用了Maven)。您可以在project.clj中定义依赖项和配置,然后运行漂亮的Leiningen命令来下载依赖项,编译代码,运行应用程序等等。

响铃是一个基本的网络框架。您可以将它与JavaEE中的Servlet进行比较。它提供了处理请求的基本功能,但功能不是很高或很多。特别是,它要求您自己编写路线调度。

如果你不想搞砸路由,只需使用 Compojure 。正如它在GitHub page上所述,“Compojure是Ring的一个小型路由库,允许Web应用程序由小的独立部分组成”。如果你需要与Java世界进行比较,我认为Spring MVC非常接近是模拟的。

之前我还没有听说过 Luminus ,但似乎正在尝试替换Noir(现已弃用)。 Luminus和Noir都是在Ring和Compojure之上构建的,并进一步扩展了Compojure的功能。

答案 1 :(得分:7)

Leiningen是一款针对Clojure开发而优化的构建工具。它主要与Maven回购交互。例如,您可以从project.clj

生成pom.xml文件

Ring是用于Web应用程序开发的低级API。例如,它使用map数据结构来包装请求和响应。当然,它提供处理程序,中间件和其他重要的工件。

Compojure提供了一个优雅的路由库。大多数时候,它与Ring一起使用。

Luminus是许多Clojure库的集合,可帮助您开始在Clojure中开发Web应用程序。

答案 2 :(得分:6)

这些元素之间的差异已经得到了很好的解答,因此我将向您简要介绍一下我对像我这样拥有ASP.NET MVC背景的人的Clojure替代方案的研究。我建议你去探索这对夫妇

Caribou

正如自己的页面所说:

Caribou是一个动态的Web应用程序生态系统,可以轻松地制作生产就绪的Web用户。 Caribou在日常需求的火焰中锻造,是Web开发人员每天面临的问题解决方案的集合。其发展背后的理念是解决我们遇到的每一个问题,一般可以反复使用。任何不必要或阻碍的东西都会因不断使用而消失。

我的简历:一个快速的环境,以某种方式模拟数据结构“面向对象的方式”,你有模型和数据层。你可以从.NET中找到更为熟悉的内容,因为它提供了很多可以直接使用的东西,甚至可以使用模型的Web界面。

Pedestal

Pedestal是一组交互式库,它们共同构成了开发特定类型应用程序的途径。它使开发人员能够使用Clojure构建需要实时协作并定位多个平台的互联网应用程序。 简而言之:Pedestal提供了一种更好,更有凝聚力的方式来在Clojure中构建富客户端Web应用程序。 寻找标准方法来构建互联网应用程序的Clojurists将喜欢Pedestal。他们现在可以塑造一个符合他们视觉的单一,一致的形式,而不是用已经找到的物体创作艺术品。

我的简历:一种非常实用的方法来开发网络应用程序,设计精良且功能强大,但绝对不熟悉或类似于ASP.NET,真的值得回顾

为了完成起见,只是为了完成而提及Liberator的主题,以防您想要使用Clojure实现REST API。