Je suis en train de développer un petit projet avec Clojure, mais je me demande si je peux accélérer un peu mon flux de travail.
Mon flux de travail actuel (avec Compojure) est le suivant :
- Commencez par Swank avec
lein swank
. - Allez dans Emacs, connectez-vous avec
M-x slime-connect
. - Charger tous les fichiers sources existants un par un. Cela permet également de démarrer un serveur Jetty et une application.
- Écrire du code dans REPL.
- Lorsque je suis satisfait des expériences, j'écris une version complète d'une construction que j'avais en tête. Eval (
C-c C-c
) le. - Passez le REPL dans l'espace de noms où réside cette construction et testez-la.
- Passez au navigateur et rechargez l'onglet du navigateur avec la page concernée.
- Modifiez le code, évaluez-le, vérifiez-le dans le navigateur.
- Répétez l'une des actions ci-dessus.
Il présente un certain nombre d'inconvénients :
- Je dois constamment basculer entre Emacs et le navigateur (ou les navigateurs si je teste des choses comme le templating avec plusieurs navigateurs). Existe-t-il un idiome commun pour automatiser cela ? J'avais l'habitude d'avoir un bit JavaScript qui rechargeait la page en permanence, mais son utilité est limitée, évidemment, lorsque je dois interagir avec la page pendant plus de quelques secondes.
- Mon instance JVM devient "sale" lorsque j'expérimente et que j'écris des fonctions de test. En fait, les espaces de noms sont pollués, surtout si je remanie et déplace les fonctions entre les espaces de noms. Cela peut entraîner des collisions de symboles et je dois redémarrer Swank. Puis-je annuler la définition d'un symbole ?
- Je charge tous les fichiers sources un par un (
C-c C-k
) lors du redémarrage de Swank. Je pense que je m'y prends mal. - Le passage entre le REPL et l'éditeur de fichiers peut être un peu irritant, surtout lorsque j'ai beaucoup d'onglets Emacs ouverts, en plus du ou des navigateurs.
Je cherche des moyens d'améliorer les points ci-dessus et l'ensemble du flux de travail en général, et j'apprécierais donc que vous me fassiez part des vôtres.
P. S.
J'ai également utilisé Vimclojure auparavant, donc les flux de travail basés sur Vimclojure sont également les bienvenus.