首页 文章

在Erlang(和Riak)中开发应用程序时的良好实践?

提问于
浏览
18

鉴于依次开发开源分布式应用程序,我们正在熟悉Erlang / OTP和Riak(Core,KV,Pipe等) . 我们的项目将有许多依赖项:像erlang_js,protobuffs等工具,还有我们需要运行的服务,例如Riak KV .

在Python / Ruby / Node.js中,如果模块放在相对于项目的标准子目录中,您可以引用它们,然后将它们打包在发行版中 . 您可以在项目目录中启动一个shell,使用您的模块,进行测试等等,如果遵循良好实践,这一切都很容易 .

在Erlang / OTP中组织开发环境的最佳实践是什么,所有依赖关系都可以访问(并且可以轻松更新到最新版本),对运行节点的shell访问,测试,发布等等?

1 回答

  • 26

    查看钢筋: https://github.com/basho/rebar 用于打包,模板和管理Erlang / OTP应用程序的版本 . 您将找到有关如何使用它的完整教程 .

    首先查看 this tutorial on OTP ,然后才能显示您的版本以及如何在Erlang中处理它们.177402_在开发项目时使用此 entire book as reference ,因为作者仍在逐步添加您可能需要的更多高级内容 .

    您可能还想继续阅读 Erlang Applications ,然后查看以下快速链接:

    Erlang Packaging, Process One OTP Packaging Video by Chicago Boss Guys Erlang Dependency Management Richard Jones Advice and examples on Packaging Erlang Projects with Dependencies Maven Tool and how it is used in packaging Erlang Projects

    最重要的是,非常认真地对待 rebar !这对于管理具有依赖性的Erlang应用程序非常重要 . 您可以继续在stackoverflow上发布您的问题以获得任何帮助 .

    在我忘记之前,请查看 Riak Community 中的大量内容 .

    EDIT

    此外,检查 creating target systems 上的系统文档以及如何使用 Reltool 来处理版本非常重要 . erlang的好处在于它有多种选项可以做什么,只要它易于以这种方式维护你的应用程序 . 使用目标系统,您将学习如何嵌入Erlang VM,如何在 SolarisVxWorks 上运行Erlang应用程序,以及使用 erlsrv 在Windows NT上创建Erlang应用程序作为服务 .

    通常,我们确保在作为操作系统启动服务器时,我们的应用程序从它开始 . 到目前为止,Solaris在嵌入Erlang / OTP VM方面比其他任何操作系统都有更多的自定义 . 您始终可以使用 Escript 与(a)嵌入式Erlang VM进行通信,其中escript创建一个允许连接到嵌入式VM的erlang节点(因此它们必须共享相同的cookie)并且嵌入式VM必须允许暂时创建的节点通过执行连接

    net_kernel:allow(List_of_nodes)
    

    ,确保调用此方法以使嵌入式VM仅允许来自已知严格指定数量的节点的连接 .

相关问题