lam*_*try 9 erlang workflow erlang-otp
你如何组织你的erlang工作流程?我现在正在学习一些Erlang,我在每次编辑后都使用Rebar,重新编译,重建并重新启动整个版本(我试图保持OTP').我很确定有一种更聪明的方法可以做到这一点.
在 Etorrent 中,我使用了一个你可能喜欢的小技巧:
make console
当您构建了开发版本后,您可以执行具有以下定义的命令:
console:
dev/etorrent-dev/bin/etorrent console \
-pa ../../apps/etorrent/ebin
Run Code Online (Sandbox Code Playgroud)
基本上,它使用发布 ebins 来处理大多数内容,但会覆盖应用程序 ebin 以使其位于您通常构建软件的位置之外。现在,运行控制台,您可以编辑代码、运行make
(我在 Emacs 中按下组合键)、修复错误、make
再次运行等等。当您对更改感到满意时,您可以进入控制台(erlang shell)并执行,l(ModuleToLoad)
此时正在运行的系统将注入新代码。OTP 将自动获取热部署的代码更改并更改流程。本质上,您在处理代码时只需很少重新启动即可。
现在,我们也有测试,所以make test
如果您想更多地保证新代码的工作,您可以在 etorrent 中执行,让测试框架在注入之前在新形成的代码上运行。