noir vs compojure?

时间:2012-03-30 20:32:27

标签: clojure compojure noir

我无法理解clojure的Noir库。它似乎是一个在compojure之上编写的框架,它将defroute重命名为defpage并将其称为一天。显然是一种不公平的简化,但Noir到底带来了什么呢?为什么我会使用Noir而不是简单的组合+打嗝?

EDIT / UPDATE: Noir已被弃用,有趣的是写在这里:http://blog.raynes.me/blog/2012/12/13/moving-away-from-noir/

4 个答案:

答案 0 :(得分:17)

来自author of Noir himself

  

Noir并不是[compojure and hiccup]的替代品,更多的是对它们的抽象。它诞生于看到一个真正的网络应用程序是如何演变的,以及我在构建http://www.typewire.io时从ring / compojure / hiccup堆栈中丢失的内容。另外,正如我在其他一条评论中所提到的那样,我希望它能作为开始在Clojure中进行Web开发的单一“包”,而不是必须尝试从外面的部分拼凑出来。现在。通过控制所有这些,我可以创建一个更有凝聚力和定义更好的故事,帮助人们开始。我还可以分享我在Clojure中维护网站所学到的知识,并希望鼓励避免我陷入某些陷阱的模式。

(强调我的)

答案 1 :(得分:17)

Noir,该框架由Noir维护者自己deprecated完成。

建议使用Compojurelib-noir

  

对于新网站,请使用Compojure和lib-noir。这就像Noir本身所包含的电池一样!您只需要学习如何使用Compojure编写路由。这很简单,就像在Noir中一样简洁。你不必使用ring-jetty-adapter和东西,只需使用lein-ring插件启动你的服务器。此外,如果你默认使用Noir包括打嗝,你现在必须明确依赖它。没什么大不了吧?没错!

答案 2 :(得分:15)

Compojure是一个生成Ring请求/响应处理程序的小框架,其中处理程序是根据您定义的路由选择的。

Noir增加了会话处理,Cookie,模板和部分功能,生成响应,表单验证,路由过滤器,加密密码,JSON(反)序列化和自定义状态页面的更简单方法。换句话说,Noir将Compojure,Hiccup和其他一些聪明的东西组合在一个包中

答案 3 :(得分:0)

您随时可以访问webnoir.org网站上的API。除defpage之外还有许多其他功能。