webjure vs compojure?

Posted

技术标签:

【中文标题】webjure vs compojure?【英文标题】:webjure vs compojure? 【发布时间】:2010-09-30 19:57:00 【问题描述】:

我听说过两个基于 Clojure 的 Web 应用程序框架:Webjure 和 Compojure。谁能告诉我哪个更好?

【问题讨论】:

这些名字现在越来越傻了。 @Dan:我在等 Abjure,如果它还不存在的话! 【参考方案1】:

Compojure 似乎现在最热门。不一定代表质量,但眼睛最多的可能会发展最快。

【讨论】:

【参考方案2】:

现在您可以将Ring 添加到列表中。所有这些框架都非常新,可能会迅速发展(或消亡),但 Compojure 似乎确实是过去 6 个月左右开发得最活跃的。

“更好”是一个过于主观的问题,无法得到明确的答案。全部尝试一下,看看有什么效果。

【讨论】:

Ring 不是 Compojure 的竞争对手; Compojure 建立在 Ring 之上。【参考方案3】:

我一直在使用 Compojure 构建一个供我自己使用的项目,并且效果很好。它并没有真正妨碍您,让您专注于重要的事情,即您的问题领域。该项目大约有 1100 行 clojure,只是为了让您了解大小。

【讨论】:

【参考方案4】:

到目前为止,Compojure 对我来说效果很好。我喜欢设计的简单性、灵活性以及它鼓励良好的惯用功能风格这一事实。

示例服务器:

(use 'compojure)

(defroutes my-app
  (GET "/index.html"
    (html 
      [:h1 "Hello World!!"]
      [:body "This is some text"]))
  (ANY "*"
    [404 "Page not found"]))

(run-server :port 80
  "/*" (servlet my-app))

请注意,Compojure 在内部使用 Ring。

【讨论】:

【参考方案5】:

还有Moustache,这是我在TryClojure 中使用的,还有Ring。真是太棒了。

【讨论】:

【参考方案6】:

Compojure 基于 Ring,它是一个低级框架,不会试图隐藏 HTTP 的大部分内容。它类似于 WSGI (Python) 或 Rack (Ruby)。 Ring 有一个中间件的概念,即可以对 HTTP 请求和/或响应做一些有意义的事情的小段代码,例如转储头信息、管理 cookie 等。Compojure 是一个更高级别的框架,有点类似于 Ruby 的 Sinatra。它的目的是为 Web 应用程序开发人员面临的大多数任务提供方便的 API(或 DSL,如果您愿意的话)。它通常与 HTML 生成库一起使用,例如 Hiccup。

在过去的几个月里,我没有听到太多关于 Webjure 的消息,我不确定它是否正在积极开发中(但我有兴趣了解更多信息)。它先于 Ring,AFAICT,它似乎已成为 Clojure Web 框架的某种标准。

【讨论】:

【参考方案7】:

我赞同 Rayne 关于 Moustache 的建议。

现在,我们正在使用 Ring(基础层、中间件)、Mustache(路由)、Hiccup(html 生成)。我们刚刚开始使用 Compass for CSS (http://compass-style.org/)。到目前为止,我对这个小型库集合而不是大型“完整堆栈”框架(Django、Rails 等)感到满意。

【讨论】:

【参考方案8】:

现在,在 compojure 之上还有一个名为 Noir 的新版本。真的很推荐,尤其是Heroku。

【讨论】:

以上是关于webjure vs compojure?的主要内容,如果未能解决你的问题,请参考以下文章

Compojure 还是 Noir 用于无 UI 的 Web 服务?

在 Compojure 中组合路线

在 Clojure/Compojure 中转义/清理用户输入

Leiningen、Compojure、Luminus 和 Ring 是啥关系?

您如何使用 Compojure/Ring 会话?

在 Compojure 中默认在 / 处提供 index.html