2012-03-30 13 views
17

Tengo problemas para entender el punto de la biblioteca Noire de clojure. Parece ser un marco escrito sobre compojure que cambia el nombre de defroute a defpage y lo llama un día. Obviamente una simplificación injusta, pero ¿qué trae Noir exactamente sobre la mesa? ¿Por qué debería usar Noir en lugar de simple compojure + hipo?noir vs compojure?

EDITAR/ACTUALIZAR: Noir está obsoleto, interesante escribir aquí: http://blog.raynes.me/blog/2012/12/13/moving-away-from-noir/.

Respuesta

14

Compojure es una pequeña estructura que genera la solicitud Anillo/manipuladores de respuesta, en donde los manipuladores se eligen basándose en rutas que defina.

Noir agrega funcionalidad para el manejo de sesiones, cookies, plantillas y parciales, una forma más fácil de generar respuestas, validación de formularios, filtros de rutas, contraseñas encriptadas, JERO (des) serialización y páginas de estado personalizadas. En otras palabras, Noir combina Compojure, Hiccup y un montón de otras cosas ingeniosas de en un solo paquete.

+0

es todo esto "cosas inteligentes" ya está disponible a través de otras bibliotecas clojure? Por ejemplo, una buena cantidad de lo que describes se puede hacer con compojure, hipo, barra de arena, clj-json, etc. ¿Noir proporciona algo nuevo además de una fachada sobre bibliotecas de clojure existentes? – Kevin

+6

Noir usa las bibliotecas existentes y las pega juntas de una manera útil, eso en sí mismo es "nuevo", y significa que el esfuerzo para encontrar, probar y combinar varias bibliotecas ha sido hecho por usted. Además de eso, ofrece algunas funcionalidades adicionales (como validaciones, estados personalizados, etc.). Las fuentes te muestran exactamente lo que se proporciona: es una funcionalidad que probablemente construirías de todos modos si desarrollas una aplicación web con compojure, hipo, barra de arena, etc. https://github.com/ibdknox/noir – Gert

17

Desde el author of Noir himself:

Noir no es realmente un reemplazo para [compojure e hipo], más de una abstracción sobre ellos. Nació después de ver cómo evolucionó una verdadera aplicación web y qué faltaba en la pila ring/compojure/hipo cuando construí http://www.typewire.io. Además, como mencioné en uno de los otros comentarios, espero que sirva como el único "paquete" para comenzar con el desarrollo web en Clojure, en lugar de tener que tratar de improvisar a partir de las piezas que están disponibles ahora. . Al controlar todo, puedo crear una historia mucho más coherente y bien definida para ayudar a las personas a comenzar. También puedo compartir lo que he aprendido sobre el mantenimiento de sitios web en Clojure y, con suerte, alentar los patrones que eviten algunos de los pozos en los que caí.

(el énfasis es mío)

0

Siempre puede consultar el API en el sitio web webnoir.org. Hay mucha funcionalidad agregada además de defpage.

17

Noir, el marco ha sido deprecated por el propio Noir Maintener.

Se sugiere utilizar Compojure y lib-noir:

Para los nuevos sitios web, por favor utilice Compojure y lib-noir. ¡Esto es más o menos igual que las baterías incluidas como nunca lo estuvo Noir! Solo tienes que aprender a escribir rutas con Compojure. Es fácil y tan conciso como lo fue en Noir. No tiene que usar el adaptador ring-jetty y esas cosas, solo use el complemento lein-ring para iniciar su servidor. Además, si se aprovechó de Noir, incluido el hipo por defecto, tendrá que tener una dependencia explícita ahora. No biggy, ¿verdad? ¡Derecha!

Cuestiones relacionadas