我想使用Clojure构建一个网站...所以: 1)目前(2011年夏季)有哪些最好的库可用于完成此任务? 2)哪里有最好的教程展示不仅仅是基本静态的“Hello World”网页?
学习和理解的关键库是Ring。Ring是Clojure工具包中所有Web“框架”的基础,其中最著名的是Compojure、Moustache和Conjure。
根据Ring的自述,Ring“抽象出HTTP以允许模块化和简洁的Web应用程序”。翻译:Ring让您将HTTP请求和响应处理为简单的Clojure映射,并允许您应用“中间件”(对这些请求/响应映射执行操作的函数)来添加额外的功能,例如会话处理、URL参数处理、cookie处理等。
如果您不了解Ring,则无法理解其他库为您做了什么。
在最基本的层面上,Compojure和Moustache提供了在Ring之上的便利,具体包括路由处理和更容易应用中间件函数。除此之外,Compojure还有很多内置功能,而Moustache则是一个更简洁的框架。Conjure是一个更类似于Rails的完整框架,以与Rails相同的抽象级别处理Web应用程序开发(预构建的MVC架构、模式帮助等)。
有关Clojure Web空间中所有库的良好概述,请参见此图形:http://www.glenstampoultzis.net/blog/wp-content/uploads/2010/10/web-layers7.png
这里有很多内容。目前,人们似乎正在将较小的库组合在一起,以编写Web应用程序,而不是依赖于试图成为所有人的“杀手”Web框架。
1) 在我看来,最好的(提及和阐述最多)是Compojure + Ring。
2) 教程: 简单: “开始使用Ring和Compojure” http://rob-rowe.blogspot.com/2011/03/getting-started-with-ring-and-compojure.html
更复杂: “构建一个社交媒体网站” http://www.bestinclass.dk/index.clj/2011/01/building-a-social-media-site.html
Noir 是一个最近发布的 Clojure 网络框架。
我最近从
(+ Clojure ring compojure hickup google-app-engine)
转到了
(+ clojure ring compojure enlive heroku)