¿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. JIRA, agregue un flujo de trabajo a un esquema de flujo de trabajo?
- 5. Flujo de trabajo Sharepoint frente al flujo de trabajo de Windows
- 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 eficiente de Clojure?
- 10. Flujo de trabajo de desarrollo web SVN
- 11. Flujo de trabajo de IPython (editar, ejecutar)
- 12. ¿Qué motor de flujo de trabajo elegir?
- 13. Flujo de trabajo de MDM en Android
- 14. ¿Flujo de trabajo de Python 3?
- 15. Flujo de trabajo usando virtualenv y pip
- 16. Eclipse EGit flujo de trabajo recomendado
- 17. Flujo de trabajo XAML Intellisense VS 2010
- 18. Mejor flujo de trabajo con Git & Github
- 19. Git, SVN y Eclipse flujo de trabajo
- 20. ¿Funcionará este flujo de trabajo git-svn?
- 21. Flujo de proceso/trabajo en Java
- 22. Flujo de trabajo UTF8 PHP, MySQL resume
- 23. Flujo de trabajo de documentación de Sphinx y JavaScript
- 24. Se requiere software de edición de flujo de trabajo - recomendación
- 25. Problemas con el flujo de trabajo de desarrollo de Sass
- 26. Compilación de flujo de trabajo con control de versión
- 27. Flujo de trabajo de compilación/implementación de aplicación
- 28. Flujo de trabajo de desarrollo de OSGi eficiente
- 29. Email de aprobación/rechazo del flujo de trabajo de Sitecore
- 30. Asesoramiento de flujo de trabajo del submódulo de Git