2011-02-23 22 views
8

¿Alguien ha ideado un flujo de trabajo ultraeficiente y un conjunto de herramientas para Erlang? Depuración, creación de prototipos, navegación, control de versiones, etc.Erlang y Toolchains

Estoy muy impresionado con el sistema de imagen integrado de Smalltalk, pero me preguntaba si algo podría acercársele con Erlang.

Respuesta

7

Erlang tiene una cadena de desarrollo muy robusta, especialmente si usted es un experto en EMACS. Existe un sistema de compilación específico de Erlang, existe un sólido soporte para empaquetar su aplicación y sus dependencias para su implementación y no olvide OTP.

En cuanto a herramientas, Dialyzer, rastreo en tiempo real en sistemas en ejecución, carga de código caliente (puede habilitar y deshabilitar o agregar registros a un sistema en ejecución sin reiniciarlo, por ejemplo), ejecución remota de código, así es Mucho que aprender es vertiginoso cuando comienzas.

+0

Sé que debería aprender emacs en algún momento, pero al ser un ViGuy, ¿cuál de estas herramientas no se puede utilizar en Vi? –

+1

@ross Ninguno de ellos requiere Emacs, todos ellos pueden (y posiblemente deberían) ejecutarse en el shell de Erlang. Lo único que trae Emacs a la mesa (imo) son las reglas de sangrado estándar y un modo flymake bastante limpio. – Lukas

5
  • Editor: puede usar lo que quiera. Usé emacs para mi primer año de erlang, pero actualmente estoy usando gedit.
  • Control de versiones: me gusta git. Parece que la mayoría de la comunidad erlang está de acuerdo (la mayoría de los proyectos están alojados en github).
  • Flujo de trabajo: Recomiendo familiarizarse con rebar.

Aquí es un ejemplo de un Makefile barras de refuerzo con sabor a:

REBAR := ./rebar 

.PHONY: all deps doc test clean release 

all: deps 
    $(REBAR) compile 

deps: 
    $(REBAR) get-deps 

doc: 
    $(REBAR) doc skip_deps=true 

test: 
    $(REBAR) eunit skip_deps=true 

clean: 
    $(REBAR) clean 

release: all test 
    dialyzer --src src/*.erl deps/*/src/*.erl 

Éstos son algunos consejos básicos:

  • Pon las pruebas unitarias en los mismos módulos que el código que son las pruebas . Ver la wiki de barras de refuerzo para más detalles.
  • Agregue {cover_enabled, true} a su archivo rebar.config. ¡Cada vez que ejecuta make test obtiene un informe de cobertura en HTML!
  • Agregue las dependencias de su proyecto a su rebar.config y puede buscarlas y compilarlas cuando ejecuta make deps.
  • Asegúrese de comentar su código con edoc. Si lo hace, la barra de refuerzo puede construir todos sus documentos cuando ejecute make doc.
1

Me pregunto acerca de la diferencia entre Sinan/Faxien y Rebar, también. De mis notas, recuerdo que Sinan/Faxien tenía más que ver con crear una plantilla de proyecto y administración de dependencias, mientras que Rebar era más útil para crear una plantilla de módulo ... Mis notas son here, tienen varios años y apuntan al arranque erlang newbies (como yo).

-Todd