Pensar en términos de marcos es probablemente un error. El mejor enfoque es pensar en términos de componentes de la biblioteca que se junten para tener el 'marco' que mejor se adapte a sus necesidades.
He utilizado una serie de marcos en el pasado. La mayoría de ellos hace un trabajo razonablemente bueno al ponerlo en funcionamiento con una aplicación básica bastante rápido. Sin embargo, sin excepción, he encontrado que todos se vuelven frustrantes la mayoría de las veces. A menudo se debe a demasiadas repeticiones o simplemente al tener que pasar por aros que no son relevantes para la aplicación que está desarrollando.
Cuando recién llegué a Clojure, comencé a buscar marcos, pero luego me di cuenta de que este era el enfoque equivocado. En cambio, me pareció mucho mejor comenzar con una aplicación de anillo básica y luego agregar bibliotecas cuando las necesitaba. Esto puede parecer una curva de aprendizaje más grande para empezar, pero de hecho resulta ser igual de eficiente porque no te obliga a aprender todo un montón de andamios marco que a menudo no necesitas.
Sin embargo, he encontrado que mirar varios marcos realmente útiles ya que me da ideas sobre cómo integrar mejor una biblioteca y lo más importante IMO, cómo puede estructurar mejor su archivo project.clj lein para adaptarse mejor al flujo de trabajo que desea .
He encontrado las siguientes plantillas realmente útiles. Yo no uso ninguna de ellas 'tal cual', pero he adaptado/ideas robadas a muchos de ellos para desarrollar los marcos, que mejor se adapten a la aplicación que estoy trabajando en
Luminus y Luminus templates proporciona una muy amplio marco. Las encuentro un poco 'pesadas' para muchas aplicaciones, pero hay algunos buenos ejemplos de cómo integrar varias bibliotecas Clojure en su aplicación. El sitio web principal también tiene alguna documentación útil.
Reagent Project, que incluye una plantilla de reactivo que proporciona un buen punto de partida para una aplicación que utiliza el soporte ClojureScript de Reagent (react.js). He encontrado que esta es una de las bibliotecas ClojureScript más sencillas para crear una aplicación con buena integración con Javascript.
lein-figwheel es una plantilla muy interesante que utiliza figwheel para proporcionar carga dinámica de clojurescript para que pueda ver los cambios de ClojureScript en el navegador mientras modifica su código. Muchas otras plantillas ahora han agregado esta funcionalidad a sus propias plantillas. Originalmente desarrollado con Om en mente, las plantillas Luminus y Reagent ahora también integran la funcionalidad Figwheel en sus plantillas.Realmente muestra algunos de los beneficios de Clojure y ClojureScript para el desarrollo interactivo.
Compojure Template es un gran punto de partida. Establece un proyecto muy básico basado en el compojure con todo el material básico del anillo y el compojure. Una excelente forma de comenzar con el desarrollo web de Clojure porque es simple y te permite enfocarte en lo básico antes de sumergirte en todas las otras opciones.
Hay muchas otras plantillas y marcos, muchos de los cuales no he tenido tiempo de mirar todavía. En estos días, a menudo empiezo con plantilla de compojure o plantilla de reactivo y luego agrego bits adicionales si es necesario. Normalmente también incluyo selmar para plantillas y uso esencialmente la misma configuración que utiliza Luminus.
Quizás la parte más importante de obtener un buen 'marco' para su desarrollo web es experimentar y comprender cómo funciona lein y el archivo lein project.clj. Tener un buen archivo project.clj determinará su flujo de trabajo. Tener los perfiles correctos, la capacidad de iniciar la réplica de diferentes maneras y cargar diferentes bibliotecas que le permitan iniciar figwheel o un navegador repl o generar un jar, etc., se trata de su archivo project.clj. Haga esto bien y su entorno proporcionará el flujo de trabajo que necesita.
No se olvide de añadir Clojure en bobinas en https://github.com/zubairq/coils y también pedestal – Zubair
De dónde viene esta posición hoy en día, cerca del final de 2013? – scape