Erlang编码标准和良好做法[已关闭]

a0x5cqrl  于 2023-01-22  发布在  Erlang
关注(0)|答案(3)|浏览(121)

我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
三年前关闭了。
Improve this question
我的团队在我的新工作中正在学习一些Erlang。现在我们已经编写了一些代码,但是代码开始变得有点混乱和不一致。
我想知道Erlang社区是否有遵循的编码标准,可以作为基准,比如如何缩进,变量和函数的命名,如何构造模块等等。
另外,有没有工具可以检查这些参数?我想用PEP8或者Python世界的PyFlakes。我使用vim,它可以检测语法错误,这很好,但是我想更进一步,尝试保持一个良好的、一致的风格,我们可以共享,并使代码更具可读性。
更新:关于凯末尔的评论,我必须说这是非常有趣的(我们会很好地利用它),但并没有完全涵盖这个主题。我的问题是"说服"一个团队使用一致的代码风格,尽可能地一致。说服每个人的一个好方法是使用Erlang社区推荐的编码风格。也许它并不存在,但我想尝试一些简单的事情,比如选择CameCase而不是Underscored_words,这可以极大地帮助代码具有一致的外观,并提高可读性。

42fyovps

42fyovps2#

我不知道。哪个对你来说更可读?这个:

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] } }.

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

z4iuyo4d

z4iuyo4d3#

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

相关问题