我的团队正在新工作中学习一些Erlang。现在我们已经制作了一些代码,但是代码开始变得有些混乱而且不一致。
我想知道Erlang社区是否遵循编码标准并且可以用作基线。诸如如何缩进,变量和函数的命名,如何构造模块等等。
此外,是否有任何工具可以检查这些参数?我正在思考Python世界中的PEP8或PyFlakes。我使用vim并且它会检测语法错误,这很好,但是我想更进一步,并尝试保持一个良好,一致的样式,我们可以共享并使代码更具可读性。
更新:关于凯末尔的评论,我必须说这很有意思(我们会很好地利用它)但不完全涵盖这个主题。我的问题是说服团队使用一致的代码样式,尽可能保持一致。说服每个人的一个好方法是使用Erlang社区推荐的编码风格。也许它不存在,但我想尝试简单的事情,比如选择CameCase over Underscored_words可以极大地帮助给代码一致的外观并帮助提高可读性。
答案 0 :(得分:10)
答案 1 :(得分:2)
我不知道一个。哪个更易读?这样:
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] } }.
我喜欢最后一个,但一致性是最重要的。所以我建议定义一个适合你的标准。
答案 2 :(得分:2)
答案 3 :(得分:1)
对于未来的搜索者......
与erlang-questions mailing list上的大人们合作(他们捐出时间在适当情况下发表严厉批评)我制作了一个中等规模的示例项目(一个完整的UUID实现),专门用来体现一种简单的风格读,写和模拟。
它涵盖了类型规范,edoc使用和Erlang代码布局和样式方面的一般编码实践:
就地多行lambda声明和其他多行问题的问题VS在源代码中使用标签(在编译代码中进行比较)在此处讨论:https://zxq9.com/archives/1337。