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 服务?
在 Clojure/Compojure 中转义/清理用户输入