functional-programming clojure

functional programming - ¿Aplicación de muestra Clojure de tamaño medio?



functional-programming (14)

Clojure es un buen ejemplo de las mejores prácticas de Clojure. Lea hacia abajo de Core.clj, cosas buenas.

¿Existe una aplicación de ejemplo Clojure de tamaño medio que podría usarse como un ejemplo de "mejores prácticas" y una buena forma de ver cómo se vería una aplicación en términos de código y organización de códigos? Una aplicación web sería particularmente interesante para mí, pero lo más importante es que el programa hace algo comúnmente útil (blog, seguimiento de errores, CMS, por ejemplo), y no algo matemático que nunca he tenido que implementar en la realidad. mundo (resolver el problema de las N-queens, simular la vida, generar secuencias de Fibonacci, y la tarifa habitual de los lenguajes de programación de funciones).

¡Gracias!


Clojure todavía es demasiado joven y un objetivo en movimiento para tener aplicaciones medianas con el código fuente disponible todavía.


Creo que Compojure es probablemente la mejor manera de tomar un ejemplo. Dudo que sea un ejemplo de "tamaño mediano", pero probablemente haya subsecciones pequeñas que funcionen. Al menos, ese será mi enfoque. sonrisas

Además, echa un vistazo

http://github.com/technomancy/mire/tree/master

que es un pequeño prototipo de cliente de lodo construido en clojure, la ventaja es que es totalmente autónomo, y probablemente bastante simple, incluidos los conceptos involucrados. Documentación, eh, está bien, pero los conceptos en el código se relacionan muy estrechamente con los elementos de acción de la MUD que se ejecuta con facilidad.



Eche un vistazo a Compojure . Es un marco web escrito en Clojure, por lo que le permite escribir y ejecutar (en un Jetty integrado) aplicaciones web útiles en Clojure, y también sirve como un buen ejemplo de una porción considerable del código Clojure del mundo real.

Está en desarrollo activo y tiene un grupo de Google útil.


Estamos a dos años de esta pregunta y, aunque todavía es temprano en el ciclo de un lenguaje, Clojure definitivamente se está utilizando para trabajos serios de producción. En World Singles, tenemos varios miles de líneas de Clojure en producción que manejan todo tipo de tareas de propósito general en nuestra plataforma web; publiqué sobre esto en mi serie Real World Clojure .

Para algunos proyectos de código abierto razonablemente grandes -no exactamente aplicaciones, pero infraestructura de alto perfil- se puede mirar Storm desde Twitter y Cascalog desde BackType (ahora parte de Twitter). 4clojure.com ha sido mencionado como una aplicación web de código abierto, vale la pena echarle un vistazo también, pero tenga en cuenta el nuevo repositorio github para 4clojure .



Recomiendo cow-blog por Brian Carper. Según el autor, fue escrito teniendo en cuenta tu propósito.


Si navega por el código fuente de clojure-contrib , puede ver cómo se implementan las bibliotecas en clojure.

También puede ClojureScript " ClojureScript " bajo el mismo árbol de fuentes.

Permite que el código escrito en un subconjunto muy pequeño de Clojure se traduzca automáticamente a JavaScript.

El traductor ClojureScript es una aplicación Clojure completa.

También me gustaría recomendarle a Clojure que muestre las muestras del Puerto de Practical Common Lisp de Stewart Halloway si aún no lo ha hecho.


Solo puedo recomendarle que eche un vistazo a Pedestal , un marco web muy prometedor, tanto del lado del servidor como del lado del cliente (donde facilita ClojureScript). Las cosas de la interfaz gráfica de usuario son un poco difíciles de entender, pero bastante parecidas a las que se deben hacer para mantenerse cuerdos en una aplicación grande.


Un signo positivo: hay un artículo sobre InfoQ sobre "uno de los primeros informes publicados de Clojure que se utiliza en una implementación de producción a gran escala". No parece estar abierto, pero al menos es una señal de que Clojure se utiliza en una aplicación de misión crítica en el mundo de la producción real. Un gran paso para la comunidad Clojure.




edge es una aplicación de tamaño moderado que muestra la estructuración de una aplicación con Clojure, ClojureScript, Component, Yada, Aero y Boot.