webjure与compojure有何区别?

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

这些名称现在变得有点傻了。 - Dan Dyer
@Dan:我在等待Abjure,如果它还不存在的话! - J Cooper
8个回答

4
现在你可以把Ring加入列表。所有这些框架都非常新,并且很可能会快速发展(或消亡),但是根据过去6个月左右的情况,Compojure似乎是最活跃的开发框架。
“更好”这个问题太主观了,无法得到确定的答案。试试它们,并看看哪个起作用。

14
Ring并不是Compojure的竞争者;Compojure是建立在Ring之上的。 - Stefan Tilkov

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。

3

我同意Rayne关于Moustache的推荐。

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


3

现在,还有一个名为Noir的新框架是基于compojure构建的。特别推荐使用Heroku


2

2

目前Compojure似乎是最受关注的。虽然这并不一定代表质量,但拥有最多关注的那个可能会发展得更快。


2
Compojure基于Ring,它是一个低级框架,不试图隐藏HTTP的大部分内容。它类似于WSGI(Python)或Rack(Ruby)。Ring有一个中间件的概念,小段代码可以对HTTP请求和/或响应进行有意义的处理,例如转储头信息、管理Cookie等。Compojure是一个更高级的框架,有点类似于Ruby的Sinatra。其目的是为Web应用程序开发人员面临的大多数任务提供方便的API(或DSL,如果您喜欢)。通常与HTML生成库(如Hiccup)一起使用。
我最近几个月没有听到关于Webjure的消息,我不确定它是否在积极开发中(但我很想了解更多)。据我所知,它是Ring之前的一个框架,而Ring似乎已经成为Clojure Web框架的标准。

1

我一直在使用Compojure构建自己的项目,效果非常好。它并不会干扰你的工作,而是让你可以专注于最重要的事情——你的问题领域。这个项目有大约1100行Clojure代码,这样你就能了解它的大小。


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