noir vs compojure?

Kev*_*vin 18 clojure compojure noir

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

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

Jer*_*emy 17

来自Noir作者本人:

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

(强调我的)


Ryt*_*tek 17

Noir,该框架已被Noir维护者自己弃用.

它建议使用Compojurelib-noir:

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


Ger*_*ert 15

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

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

  • Noir使用现有的库并以有用的方式将它们粘合在一起 - 这本身就是"新的",这意味着已经为您完成了查找,测试和组合各种库的工作.除此之外,它还提供了一些额外的功能(如验证,自定义状态等).消息来源向您展示了所提供的内容 - 如果您使用compojure,hiccup,sandbar等开发Web应用程序,它可能会构建您的功能.https://github.com/ibdknox/noir (6认同)