216 votes

Comment réaliser une application web en Clojure ?

Je suppose que c'est une question étrange pour l'immense majorité des programmeurs qui travaillent quotidiennement avec Java. Ce n'est pas mon cas. Je connais Java-le-langage, parce que j'ai travaillé sur des projets Java, mais pas Java-le-monde. Je n'ai jamais créé une application web à partir de rien en Java. Si je dois le faire avec Python, Ruby, je sais où aller (Django ou Rails), mais si je veux faire une application web en Clojure, non pas parce que je suis obligé de vivre dans un monde Java, mais parce que j'aime ce langage et que je veux essayer, quelles bibliothèques et quels frameworks dois-je utiliser ?

1 votes

Je me demandais si vous souhaitiez utiliser les API natives de Java ou celles de Clojure ?

0 votes

Ande : Je ne suis vraiment pas sûr, car je connais très peu le monde Java à cet égard (mais j'utilise Java, le langage, depuis un certain temps déjà au travail).

0 votes

Je pense que ce serait bien si cette question se terminait par une liste de frameworks web Clojure, avec une réponse chacun, et que chacun puisse voter pour son préféré. Je pense que la réponse de Meredydd est définitivement celle de Compojure. Je vais en ajouter une pour Webjure et ce serait bien d'avoir une comparaison.

3voto

KendallB Points 539

Je vais ajouter mes deux cents pour Conduit également de @weavejester le mainteneur de Compojure et Ring.

A la base, il apporte Composant et le routeur Ring sous un même toit. Raisons pour lesquelles j'utilise Duct :

  • Excellente base philosophique : il vous encourage à construire votre application comme une série de petits composants, et il trouve un bon équilibre entre le fait d'avoir peu d'opinions tout en fournissant des valeurs par défaut raisonnables.
  • Chemin stable : Je ne parle que pour moi, mais au fil des ans, j'ai eu l'impression que la communauté Clojure a présenté un framework web peu crédible après l'autre. Quelques-uns m'ont semblé tout simplement trop expérimentaux (mon expérience avec Om et Pedestal côté client) pour " faire avancer les choses " (non pas qu'ils ne se révèlent pas supérieurs par la suite). D'un autre côté, j'ai l'impression que @weavejester a apporté la même stabilité et le même progrès mesuré à Duct qu'à Compojure et Ring, ce qui a été superbement démontré par la communauté.
  • C'est super léger, et hors du chemin de mes composants.

Principales caractéristiques :

  • Organise les routes par "points de terminaison", de petits composants que vous pouvez considérer comme des mini-serveurs web (ou, de petites sections transversales de vos routes HTTP).
  • Prise en charge prête à l'emploi de la Flux de travail rechargé .
  • Intégration parfaite avec Ring et Compojure.
  • Configurations de développement et de production (ce qui, selon moi, manque cruellement ailleurs).
  • Bonne documentation avec des exemples.

Note : Il va sans dire, mais pour le bénéfice des nouveaux arrivants en matière de développement web, que comme la plupart des choses Clojure, Duct nécessite une solide maîtrise de Clojure le langage. Je vous recommande également de lire d'abord Component.

Sur une autre note personnelle, j'utilise Duct dans plusieurs applications de production depuis plus d'un an maintenant et j'en suis extrêmement satisfait.

2voto

Zubair Points 11039

Vous pouvez également essayer Clojure sur Coils, http://github.com/zubairq/coils - avis de non responsabilité : je suis l'auteur

2voto

claj Points 1723

Un autre serveur web intéressant est Http-kit . Il offre de bonnes performances, est compatible avec les anneaux et prend également en charge les WebSockets. Il est fait principalement en clojure, et n'a pas certaines des choses étranges de Jetty/Tomcat.

Il est facile de le bricoler.

2voto

ftravers Points 1016

Reframe et om.next sont probablement ce que vous recherchez.

1voto

Micah Elliott Points 11

Arachne est un nouveau framework web. Je cite la description du site :

Arachne est un framework de développement web complet et hautement modulaire pour Clojure. Il met l'accent sur la facilité, la simplicité et une conception solide et évolutive. conception.

Il dispose d'un campagne de démarrage qui prétend offrir une expérience de "démarrage" similaire à celle de Rails. Il est développé par un Cognitect.

Ici est une bonne discussion à ce sujet avec l'auteur de Luminus (yogthos).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X