Mature Clojure frameworks web?
Quels sont les choix actuels de la maturité de l'Clojure frameworks web? Je suis à la recherche d'une sorte de fonction de la matrice de me dire ce que le populaire cadres de support, et dans quelle mesure, y compris:
- Réponse de template (réponse écrit en Clojure ou dans certains autres balisage - comme p.ex. des JSP avec des Tuiles)
- Sessions HTTP
- RESTE avec mappage automatique des Url en action-fonctions et paramètres
- Les formulaires HTML (params disponibles sous forme de cartes, la gestion des erreurs de validation)
- Flux d'Application (connu à partir de la liste des frameworks Java - les gestionnaires de demandes de retour de l'action des identificateurs qui sont par la suite traitées par les moteurs de rendu)
- -1 pour demander de sessions HTTP, le Jeu cadre prouve que vous n'en avez pas besoin
Vous devez vous connecter pour publier un commentaire.
Peut-être ma réponse à la Quel est le bon point de départ pour développer des services web RESTful en Clojure? question sur SI peut-être vous aider. Il mentionne quelques importantes bibliothèques web pour Clojure (avec des liens et de brefs résumés). Le point clé qui je tiens à réaffirmer ici est indiqué dans le premier paragraphe de la réponse:
Pour que je voudrais ajouter que vous ne devriez probablement pas s'attendre à gérer les choses avec la sorte de "flux d'application", vous savez peut-être de Java (ou si vous croyez que vous avez vraiment besoin, vous aurez probablement à rouler votre propre lib à le soutenir!). C'est bien, cependant, que les gens semblent être très heureux avec l'Anneau du gestionnaire-est-une-fonction d'ordre supérieur-middleware-approche amicale.
Pour répondre à vos balles:
Réponse de template:
Il y a un certain nombre de Clojure des solutions spécifiques, y compris Enlive et Le hoquet (Enlive est un très puissant HTML de grattage /templates /transformer moteur; le Hoquet est un DSL pour l'écriture de code HTML en Clojure avec la belle propriété qu'il rend rapide). Aussi, c'est probablement un endroit où il a le sens parfait pour descendre à Java et utiliser quelque chose comme, disons, StringTemplate. Cela a même le bon côté de décourager le mélange de modèles et de logique! (Je crois que Stuart Halloway a mentionné que sa Pertinence, son entreprise, est d'utiliser cette stratégie dans leur travail et ayant beaucoup de succès avec elle.)
Sessions HTTP
Que serait Banc de sable, je suppose. L'auteur a commencé une série de blogposts sujet qui semble très prometteur.
RESTE avec mappage automatique des Url en action-fonctions et paramètres
C'est Anneau & Compojure et/ou Moustache. Voir ci-dessous.
Les formulaires HTML (params disponibles sous forme de cartes, la gestion des erreurs de validation)
Comme ci-dessus.
Flux d'Application (connu à partir de la liste des frameworks Java - les gestionnaires de demandes de retour de l'action des identificateurs qui sont par la suite traitées par les moteurs de rendu)
Comme mentionné ci-dessus, pas vraiment quelque chose que les gens ont tendance à le faire en Clojure.
Comme un point de départ dans l'apprentissage de la Clojure web de la pile, cette Bague tutoriel par Anneaus'auteur Mark McGranaghan est très utile. Compojures'auteur James Reeves a une partie de la documentation sur Compojure. Peut-être ma récente réponse à la Ce qui est de la “grande idée” derrière compojure routes? question peut-être de les aider trop. Anneau de sources incluent également un grand SPEC document.
.setAttribute
sur des modèles, qui est assez simple à utiliser avecdoseq
et une carte de Clojure).Depuis que cette question a été initialement demandé /réponses, les Noir framework web a émergé comme une solution prometteuse.
Il utilise le hoquet pour la création de modèles, mais offre un cadre complet autour de cela.
De base exemple de code à partir de Noir de la page principale:
Je vous recommande d'utiliser Luminus, non pas en raison de son impressionnant nom, mais aussi sa fonctionnalité.
Et, depuis le Noir n'est plus maintenu, je ne vous recommande pas de l'utiliser.
Il est également un bon choix pour commencer à partir de l'anneau & Compojure depuis le début afin de construire votre propre cadre de référence.
Vous pouvez peut-être poser la mauvaise question. Ce que je vois dans votre question est "quel Clojure cadre est plus comme le Java Orienté Objet cadres que je suis?". Il n'y a pas de bonne réponse à cela; si vous ne vous sentez à l'aise avec un état-ful approche côté serveur (comme le Graal ou de la Tapisserie), alors peut-être vous devriez rester là, et de trouver une façon de mettre en œuvre certaines de vos backend en Clojure.
D'autre part, si vous voulez construire quelque chose de plus fidèle à Clojure, vous pouvez trouver votre propre mélange. J'ai eu un bon succès en utilisant AngularJS et CoffeeScript sur le client, et Clojure (à l'aide de l'Anneau et de l'Évêque) sur le serveur (même si nous passons de l'Évêque de Libérateur). Dans tous les cas, une fois que vous embrasser le "single page" web app à l'approche et commencer le traitement côté serveur en tant que source et de puits de données, vous trouverez Clojure fonctionne exceptionnellement bien.
essayer de route cadre pour fast web dev https://github.com/zhujinxian/road