Estoy desarrollando un proyecto de mascotas con Clojure, pero me pregunto si puedo acelerar un poco mi flujo de trabajo.¿Flujo de trabajo eficiente de Clojure?
Mi flujo de trabajo actual (con Compojure) es:
- inicio Swank con
lein swank
. - Vaya a Emacs, conéctese con
M-x slime-connect
. - Cargue todos los archivos fuente existentes uno por uno. Esto también inicia un servidor Jetty y una aplicación.
- Escriba un código en REPL.
- Cuando esté satisfecho con los experimentos, escriba una versión completa de una construcción que tenía en mente. Eval (
C-c C-c
). - Cambie REPL al espacio de nombre donde reside este constructo y pruébelo.
- Cambie al navegador y vuelva a cargar la pestaña del navegador con la página afectada.
- Modifique el código, evalúelo, consulte el navegador.
- Repita cualquiera de las anteriores.
Hay una serie de molestias con ella:
- tengo que cambiar entre Emacs y el navegador (o navegadores si estoy probando cosas como plantillas con múltiples navegadores) todo el tiempo. ¿Hay un idioma común para automatizar esto? Solía tener un bit de JavaScript que recarga la página continuamente, pero tiene una utilidad limitada, obviamente, cuando tengo que interactuar con la página por más de unos pocos segundos.
- Mi instancia de JVM se vuelve "sucia" cuando experimento y escribo funciones de prueba. Básicamente, los espacios de nombres se contaminan, especialmente si estoy refactorizando y moviendo las funciones entre espacios de nombres. Esto puede provocar colisiones de símbolos y necesito reiniciar Swank. ¿Puedo undef un símbolo?
- Cargo todos los archivos fuente uno por uno (
C-c C-k
) al reiniciar Swank. Sospecho que lo estoy haciendo todo mal. - Cambiar entre REPL y el editor de archivos puede ser un poco irritante, especialmente cuando tengo muchas pestañas de Emacs abiertas, junto con los navegadores.
Estoy buscando maneras de mejorar los puntos anteriores y todo el flujo de trabajo en general, por lo que agradecería que compartiera el suyo.
P. S.
También he utilizado Vimclojure antes, por lo que los flujos de trabajo basados en Vimclojure también son bienvenidos.