6

私のチームは新しい仕事でErlangを学んでいます。現在、いくつかのコードが作成されていますが、コードが少し乱雑になり始めており、一貫性がありません。

Erlang コミュニティが準拠していて、ベースラインとして使用できるコーディング標準があるかどうかを知りたいです。インデントの付け方、変数や関数の命名、モジュールの構造など。

また、これらのパラメータをチェックするツールはありますか? Pythonの世界ではPEP8かPyFlakesで考えています。私は vim を使用しており、構文エラーを検出します。これは素晴らしいことですが、もう少し進めて、共有できる適切で一貫したスタイルを維持し、コードをより読みやすくしたいと考えています。

更新: Kemal のコメントについては、非常に興味深い (そして、私たちはそれをうまく利用します) と言わざるを得ませんが、主題を完全にカバーしているわけではありません。私の問題は、可能な限り一貫性のある、一貫したコード スタイルを使用するようにチームを説得することです。全員を納得させる良い方法は、Erlang コミュニティが推奨するコーディング スタイルを使用することです。存在しないかもしれませんが、Underscored_words よりも CameCase を選択すると、コードに一貫した外観を与えて読みやすくするのに非常に役立つなど、単純なことを試してみたいと思います。

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というツールがありますが、デフォルトのルールは、Erlang コミュニティ全体のデフォルトではなく、Inaka (作成者) のルールです。

于 2014-10-07T09:52:00.627 に答える