Existe-t-il un exemple d'application Clojure de taille moyenne qui pourrait être utilisé comme exemple de "meilleures pratiques" et un bon moyen de voir à quoi ressemblerait une telle application en termes de code et d'organisation du code? Une application Web serait particulièrement intéressante pour moi, mais le plus important est que le programme fasse quelque chose d'utile (blog, suivi de bogues, CMS, par exemple), et pas quelque chose de mathématique que je n'ai jamais eu à implémenter dans la réalité. monde (résoudre le problème des N-reines, simuler la vie, générer des séquences de Fibonacci, et le tarif habituel des langages de programmation de fonctions).
Merci!
Je recommande cow-blog par Brian Carper. Selon l'auteur, il a été écrit dans votre esprit.
Si vous parcourez le code source clojure-contrib , vous pouvez voir comment les bibliothèques sont implémentées dans clojure.
Vous pouvez également extraire " ClojureScript " sous la même arborescence source.
Permet au code écrit dans un très petit sous-ensemble de Clojure d'être automatiquement traduit en JavaScript.
Le traducteur ClojureScript est une application Clojure complète.
Je recommanderais également de vérifier les exemples de Stewart Halloway Port of Practical Common LISP to Clojure si vous ne l'avez pas déjà fait.
Jetez un oeil à Compojure . Il s'agit d'un cadre Web écrit en Clojure, il vous permet donc d'écrire et d'exécuter (sur une jetée intégrée) des applications Web utiles dans Clojure, et sert également de bon exemple d'un gros morceau de code Clojure du monde réel.
Il est en cours de développement actif et a une fonction utile Google Group .
Découvrez la démo des fourmis écrite par l'auteur de Clojure, Rich Hickey:
http://clojure.googlegroups.com/web/ants.clj
Voici quelques bonnes instructions pour le configurer avec un environnement de développement emacs:
Consultez également la présentation de Rich qui accompagne ce code:
Clojure lui-même est un bon exemple des meilleures pratiques de Clojure. Lisez vers le bas de Core.clj, bonnes choses.
4Clojure est un open source site Web où vous pouvez résoudre des problèmes de Clojure interactifs à remplir.
Je pense que Compojure est probablement la meilleure façon de prendre un exemple. Je doute que ce soit un exemple de "taille moyenne", mais il y a probablement des sous-sections qui sont petites et qui fonctionneraient. Au moins, ce sera mon approche. sourit
Consultez également
http://github.com/technomancy/mire/tree/master
qui est un petit m.u.d. prototype client construit en clojure, l'avantage étant qu'il est totalement autonome, et probablement assez simple, y compris les concepts impliqués. La documentation, hein, c'est bien, mais les concepts du code sont très étroitement liés aux éléments d'action du M.U.D. cela fonctionne facilement.
Nous sommes à deux ans de cette question et, bien que ce soit encore tôt dans le cycle d'une langue, Clojure est définitivement utilisé pour un travail de production sérieux. Chez World Singles, nous avons plusieurs milliers de lignes de Clojure en production qui gèrent toutes sortes de tâches à usage général dans notre plate-forme Web - j'ai blogué à ce sujet dans mon Real World Clojure series .
Pour certains projets open source raisonnablement importants - pas exactement des applications, mais une infrastructure de grande envergure - vous pouvez consulter Storm de Twitter et Cascalog de BackType (qui fait maintenant partie de Twitter). 4clojure.com a été mentionné comme une application web open source, cela vaut également le coup d'oeil, mais notez le nouveau dépôt github pour 4clojure .
Un signe positif: il y a un article sur InfoQ sur "l'un des premiers rapports publiés de Clojure utilisé dans un déploiement de production à grande échelle." Il ne semble pas être ouvert, mais au moins c'est un signe que Clojure est utilisé dans une application critique dans le monde réel de la production. Un grand pas pour la communauté Clojure.
Vous pouvez jeter un œil ici: http://bitbucket.org/kumarshantanu/blogjure/overview/
C'est une petite application de blog écrite en utilisant Hibernate, Compojure et StringTemplate qui fonctionne réellement!
http://code.google.com/p/lighttexteditor/
Vous pouvez essayer un éditeur de texte léger
Edge est une application de taille moyenne présentant la structuration d'une application avec Clojure, ClojureScript, Component, Yada, Aero et Boot.
Je ne peux que vous recommander de consulter Pedestal , un framework web très prometteur, à la fois côté serveur et côté client (où il facilite ClojureScript). Le truc gui est un peu difficile à saisir, mais à peu près la façon dont il faut le faire pour rester sain d'esprit dans une grande application.
Clojure est encore trop jeune et une cible mouvante pour avoir encore des applications de taille moyenne avec du code source disponible.