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

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

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

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


Leiningen是一个构建工具。 像Java世界中的Maven一样(事实上,它在引擎盖下使用Maven)。 您可以在project.clj定义依赖和配置,然后运行良好的Leiningen命令来下载依赖关系,编译代码,运行应用程序等等。

Ring是一个基本的Web框架。 您可以将其与JavaEE中的Servlet进行比较。 它提供处理请求的基本功能,但不是很高级别或功能丰富。 特别是,它要求你自己写路由调度。

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

我之前没有听说过Luminus ,但它似乎正试图取代Noir(现在已弃用)。 Luminus和Noir都是在Ring和Compojure的基础上构建的,进一步扩展了Compojure的功能。


Leiningen是一款针对Clojure开发进行优化的构建工具。 它主要与Maven回购交互。 你可以例如从你的project.clj中生成pom.xml文件

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

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

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


这些元素之间的差异已经得到很好的回答,所以我会试着向你简单介绍一下我的关于Clojure替代品的研究,这些替代品适用于像我这样的ASP.NET MVC背景的人。 我建议你去探索这对夫妇

卡里布

正如自己的网页所说:

Caribou是一个动态的Web应用程序生态系统,可以用最少的工作量来制作生产就绪的Web居民。 在日常需求的激烈攻击下,Caribou是针对Web开发人员每天面临的问题的解决方案集合。 其发展背后的理念是解决我们遇到过的每一个问题,一般而言可以反复使用。 任何不必要的或阻碍的东西都会被永久使用的磨损烧毁。

我的简历:以一种“面向对象的方式”建模数据结构的快速环境,其中有模型和数据层。 你会发现.NET更加熟悉它,因为它提供了大量可用于开箱即用的东西,甚至可以使用Web界面来与模型一起使用。

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

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

为了完成的目的,只是为了提到Liberator而谈论了一些话题,以防万一你想用Clojure实现REST API。

链接地址: http://www.djcxy.com/p/56983.html

上一篇: What's the relationship between Leiningen, Compojure, Luminus and Ring?

下一篇: Compojure Ring Server Generated By 'lein ring server' Acting Oddly