如何使用Clojure创建Web应用程序?

219

对于每天都在使用Java的绝大多数程序员来说,我想这可能是一个奇怪的问题。但我并不是那样。虽然我接触过Java语言并参与过Java项目,但并不熟悉Java技术栈。我从未使用Java从头开始构建Web应用程序。如果我需要使用Python或Ruby来构建Web应用程序,我会选择Django或Rails这样的框架,但如果我想使用Clojure构建Web应用程序,不是因为我被迫生活在Java世界中,而是因为我喜欢这门语言,想尝试一下,那我该使用哪些库和框架呢?


1
我想知道你是否希望使用Java Native API还是Clojure Native API? - Ande Turner
Pupeno!我是通过搜索“使用Clojure开发Web应用程序”而来到这里的。这个页面是在谷歌中排名第一的结果。 - Sebastián Grignoli
2
请注意相关问题https://dev59.com/rHA75IYBdhLWcg3wYX9Q - Petr Gladkikh
记事本(emacs):完成。不刮胡子:完成。男人模式:开启 - Adam Arold
@AdamArold:你是认真地把Emacs和记事本比较了吗?像,真的吗?! - mike3996
显示剩余4条评论
16个回答

3
我会为Duct提供我的建议,它与@weavejester的Compojure和Ring维护者有关。在其核心,它将Component和Ring路由器集成在一起。我使用Duct的原因:
  • 优秀的哲学基础:它鼓励您将应用程序构建为一系列小组件,并在提供合理默认值的同时保持少数观点之间的良好平衡。
  • 稳定的路径:我只代表自己,但多年来,我感觉Clojure社区一次又一次地呈现出不太可信的Web框架。其中有几个仅仅是太实验性的(我的Om和客户端Pedestal的经验)而无法“完成任务”(不是说它们将来不会被证明更优秀)。另一方面,我感觉@weavejester已经为Duct带来了与他为Compojure和Ring所做的相同的稳定性和逐步进展,这在社区中得到了很好的体现。
  • 它非常轻量级,并且不会妨碍我的组件。

主要特点:

  • 通过“终点”组织路由,这些小组件可以看作是迷你Web服务器(或者,您的HTTP路由的小交叉部分)。
  • 支持Reloaded Workflow的开箱即用。
  • 与Ring和Compojure完美集成。
  • 开发和生产配置(在其他地方明显缺失的东西)。
  • 有例子的良好文档。

注意:不用多说,但为了新手的利益,就像大多数Clojurey东西一样,Duct需要对Clojure语言有扎实的掌握。我也建议先阅读有关Component的内容。

另外一条个人笔记,我已经在几个生产应用中使用Duct超过一年了,并且非常满意。


2
重新构架和om.next可能是你正在寻找的内容。

2

2
另一个有趣的Web服务器是Http-kit。它具有良好的性能并且符合Ring标准,还支持WebSockets。它主要使用Clojure编写,缺少Jetty/Tomcat中的一些奇怪的东西。它很容易调整。

1

Arachne 是一个新手友好的 Web 框架。引用该网站的描述:

Arachne 是一个适用于 Clojure 的完整、高度模块化的 Web 开发框架。它强调易用性、简单性和可扩展性。

它有一个 kickstarter 活动,声称提供类似于 Rails 的“入门”体验。它由 Cognitect 开发。

这里 有一个与 Luminus(yogthos 的作者)的作者讨论它的好帖子。


1

我已经成功地在生产中使用Liberator一段时间了。如果你只想要基本的框架,比如构建RESTful web服务或类似的东西,那么这是一个很好的选择。它本质上是ring和compojure的包装器,并在验证传入请求时提供决策图。与其他更笨重的web框架相比,它也非常快。如果你想快速开始并逐步构建,则Liberator是一个很好的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接