6

我的团队正在我的新工作中学习一些 Erlang。现在我们已经编写了一些代码,但是代码开始变得有点混乱并且不一致。

我想知道是否有 Erlang 社区遵循的编码标准,可以用作基线。诸如如何缩进,变量和函数的命名,如何构建模块等。

另外,是否有任何工具可以检查这些参数?我正在考虑 Python 世界中的 PEP8 或 PyFlakes。我使用 vim,它会检测语法错误,这很好,但我想更进一步,尝试保持良好、一致的风格,我们可以共享并使代码更具可读性。

更新:关于 Kemal 的评论,我必须说这非常有趣(我们会充分利用它),但并未完全涵盖该主题。我的问题是说服团队使用一致的代码风格,尽可能保持一致。说服所有人的一个好方法是使用 Erlang 社区推荐的编码风格。也许它不存在,但我想尝试一些简单的事情,比如选择 CameCase 而不是 Underscored_words 可以极大地帮助使代码具有一致的外观并提高可读性。

4

3 回答 3

10

嗯,有这个http://www.erlang.se/doc/programming_rules.shtml。它相当全面。

于 2012-04-26T13:20:50.727 回答
3

我不知道一个。哪个对您来说更具可读性?这:

init([]) ->
   AChild = {'AName',{'AModule',start_link,[]},
         permanent,2000,worker,['AModule']},
   {ok,{{one_for_all,0,1}, [AChild]}}.

或这个:

init([]) ->
   AChild = {
      'AName',
      {'AModule', start_link, []},
      permanent,
      2000,
      worker,
      ['AModule']
   },
   {
      ok, 
      {
         {one_for_all,0,1}, 
         [AChild]
      }
   }.

或这个:

init([]) ->
   AChild = { 'AName'
            , {'AModule', start_link, []}
            , permanent
            , 2000
            , worker
            , ['AModule'] }
   { ok, 
      { {one_for_all,0,1}
      , [AChild] } }.

我喜欢最后一个,但一致性是最重要的。所以我建议定义一个适合你的标准。

于 2012-04-26T17:32:40.163 回答
2

有一个名为Elvis的工具可用于强制编码风格,但默认规则是来自Inaka(创建者)的规则,而不是整个 Erlang 社区的默认规则。

于 2014-10-07T09:52:00.627 回答