Erlang and Toolchains

2019-01-19 00:29发布

Has anyone worked out an ultra efficient workflow and toolset for Erlang? Debugging, prototyping, browsing, version control, etc.

I'm extremely impressed with Smalltalk's integrated image system, but was wondering if something could be even approaching it with Erlang.

标签: erlang
3条回答
手持菜刀,她持情操
2楼-- · 2019-01-19 01:00

I wonder about the difference between Sinan/Faxien and Rebar, too. From my notes, I remember that Sinan/Faxien was more about creating a project template, and dependency management, while Rebar was more useful for creating a module template... My notes are here, are several years old, and are aimed at bootstrapping erlang newbies (like me).

-Todd

查看更多
forever°为你锁心
3楼-- · 2019-01-19 01:01

Erlang has a very robust development chain, especially if you are an EMACS maven. There is an Erlang specific build system, there is robust support for packaging your application and its dependencies for deployment and don't forget OTP.

As for tools, there is Dialyzer, real time tracing on running systems, hot code loading ( you can enable and disable or add logging to a running system without restarting it, for example ), remote code execution, there is so much to learn it is dizzying when you start out.

查看更多
劫难
4楼-- · 2019-01-19 01:13
  • Editor: you can use whatever you want. I used emacs for my first year of erlang, but I'm currently using gedit.
  • Version Control: I like git. It seems that most of the erlang community agrees (most projects are hosted on github).
  • Workflow: I'd recommend getting familiar with rebar.

Here is an example of a rebar-flavored Makefile:

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

Here are some basic pointers:

  • Put your unit tests in the same modules as the code they are testing. See the rebar wiki for details.
  • Add {cover_enabled, true} to your rebar.config file. Every time you run make test you get a coverage report in HTML!
  • Add your project's dependencies to your rebar.config and you can fetch and build them when you run make deps.
  • Make sure to comment your code with edoc. If you do, rebar can build all of your docs when your run make doc.
查看更多
登录 后发表回答