¿Cómo se organiza el flujo de trabajo de Erlang? Estoy aprendiendo algo de Erlang ahora y estoy usando Rebar, recompilando, reconstruyendo y reiniciando una versión completa (estoy tratando de mantener todo OTP'ish) después de cada edición. Estoy bastante seguro de que hay una manera más inteligente de hacer esto.Flujo de trabajo de Erlang
Respuesta
En eTorrent, estoy usando un pequeño truco que puede gustar:
Cuando se han construido una versión de desarrollo, puede ejecutar el comando make console
que tiene la siguiente definición:
console:
dev/etorrent-dev/bin/etorrent console \
-pa ../../apps/etorrent/ebin
básicamente, usa el ebins de lanzamiento para la mayoría de las cosas, pero anula la aplicación ebin para estar afuera en el punto donde normalmente construyes el software. Ahora, ejecutando una consola, puede editar su código, ejecutar make
(pulso una combinación de teclas en Emacs), corregir errores, ejecutar make
nuevamente y así sucesivamente. Cuando esté satisfecho con su cambio, ingrese en la consola (shell de Erlang) y ejecute l(ModuleToLoad)
, en cuyo punto el sistema en ejecución obtiene el nuevo código inyectado. OTP recogerá automáticamente el cambio de código implementado en caliente y alterará los procesos. Básicamente, solo tienes que reiniciar bastante raramente cuando trabajas en el código.
En la actualidad, también tenemos pruebas, por lo que puede ejecutar make test
en etorrent para ejecutar el marco de prueba en su código recién formado antes de la inyección si desea un poco más de garantía de que el nuevo código funciona.
Con Chicago jefe le acaba de golpear "Actualizar" en su navegador web:
Incluso si su objetivo no es el desarrollo web, podría ser una manera de aprender Erlang que es más divertido que su flujo de trabajo actual. CB imprime muy bien la compilación y los errores de tiempo de ejecución directamente en el navegador.
He estado usando Sync para evitar el bucle temido de edición/recompilación/reinicio. Busca cambios en los archivos de origen y luego vuelve a compilar y volver a cargar el módulo modificado. Imprime errores y advertencias en la consola y los envía a notify-send/growl si está disponible.
Es tan fácil como ejecutar sync:go().
Tome un vistazo a this rebar template para un mejor ejemplo.
Si está desarrollando en un clúster, otra gran característica es el "modo de parche" de sincronización. Con el "modo de parche" cada vez que la sincronización compila con éxito un módulo, envía el código compilado a cada nodo conectado al clúster y vuelve a cargar el módulo.
Para la recarga automática de archivos src con cada edición, puede probar el complemento automático en rebar3.
Recientemente me mudé a rebar3 y me resultó mucho más fácil trabajar en comparación con la barra de refuerzo.
- 1. Mejor flujo de trabajo PHP
- 2. Git flujo de trabajo básico
- 3. Flujo de trabajo con Symfony2?
- 4. Flujo de trabajo Sharepoint frente al flujo de trabajo de Windows
- 5. JIRA, agregue un flujo de trabajo a un esquema de flujo de trabajo?
- 6. Flujo de trabajo de subprogramas de Git
- 7. Prueba de unidad de flujo de trabajo
- 8. Flujo de trabajo de prueba de Haskell
- 9. Flujo de trabajo de IPython (editar, ejecutar)
- 10. Flujo de trabajo de desarrollo web SVN
- 11. ¿Flujo de trabajo de Python 3?
- 12. ¿Flujo de trabajo eficiente de Clojure?
- 13. ¿Qué motor de flujo de trabajo elegir?
- 14. Flujo de trabajo de MDM en Android
- 15. ¿Funcionará este flujo de trabajo git-svn?
- 16. Flujo de proceso/trabajo en Java
- 17. Git, SVN y Eclipse flujo de trabajo
- 18. Eclipse EGit flujo de trabajo recomendado
- 19. Flujo de trabajo XAML Intellisense VS 2010
- 20. Flujo de trabajo usando virtualenv y pip
- 21. Flujo de trabajo UTF8 PHP, MySQL resume
- 22. Mejor flujo de trabajo con Git & Github
- 23. Flujo de trabajo de prueba de Shoulda desde las trincheras
- 24. Se requiere software de edición de flujo de trabajo - recomendación
- 25. Compilación de flujo de trabajo con control de versión
- 26. Flujo de trabajo de documentación de Sphinx y JavaScript
- 27. Motores de flujo de trabajo de código abierto Java
- 28. Flujo de trabajo de pago de facturas mensual
- 29. Flujo de trabajo de desarrollo de OSGi eficiente
- 30. Flujo de trabajo de compilación/implementación de aplicación