已经有很多很棒的答案了。请允许我给你我自己的,让事情尽可能清楚。
我个人将这种编写代码的方式称为“Haskell 风格”,因为它是在 Haskell 中使用的一种常见风格。让我先给你一个 Haskell 的例子:
data Settings = -- The user settings
{ has_sound :: Bool -- Determines if the user has sound
, has_power :: Bool -- Determines if the user has electricity
, has_graphics :: Bool -- Determines if the user has graphics
, user_name :: String -- The name of the user
, user_password :: String -- The hashed password of the user
, user_email :: Email -- The email address of the user
, stylesheet :: Style -- The stylesheet to use
}
还有我的一个项目的 Javascript 片段:
var events // Holds the events to generate a event handler for.
, var2 // Quick description for var2.
, var3 // Quick description for var3.
, ... // ...
;
events = // Event handlers will be generated for the following events:
[ "onmousedown" // Works outside of the window element
, "onmouseup" // Works outside of the window element
, "onmousemove" // Works outside of the window element
, "onmousewheel" // This will handle DOMMouseScroll aswell
];
“Haskell 风格”的好处
易于阅读
“Haskell 样式”利用了列样式布局。这种列样式使您的代码更具可读性。事实上,它使您的代码更具可读性,以至于您一直都在使用它。想象一下编写没有制表符或前导空格的代码!
通过利用列样式布局,变量名称、类型等也更易于阅读。通过按前缀对变量进行分组,我们未来的读者将很容易找到他正在寻找的内容,而无需使用高级搜索查询。
易于记录
列式布局更有优势。通过对我们的代码进行分组,我们可以添加一个保留用于注释的列。现在您可以阅读您的代码,甚至不需要颜色突出显示,并且向您的评论添加信息就像找到正确的列并修改它一样简单。此外,这种列式记录代码的方式与使用 Doxygen 之类的文档生成器后得到的差不多,无需使用此类工具。
容易发现错误
使用这种编码风格,注意到缺少的逗号是小菜一碟。只需寻找不以它开头的行!另一方面,我们在行尾有逗号。我们错过了一个?不,因为它是最后一个元素,或者因为表达式在下一行继续。查找列表中的第一个元素非常简单。在处理长行时,第一个元素很容易被忽略,但是通过将第一个元素放在它自己的行上并在其前面放置一个[
或{
而不是,
右,很容易发现。
易于扩展
您可能会说“但是一旦表达式变大,这种布局样式将变得无法处理!”,这是非常正确的,但这对于您的其余代码有什么不同吗?我认为通过使用列样式,您至少可以使代码保持可读性,从长远来看,这比您可能不得不将其放入列布局中的努力更有价值。
一个例子!
var scalable = // This is a example variable
[
[ new MyObject // This is how I would style Object Allocation
( "11"
, "This is the first element"
, function // This is a very secret function...
( secret // ..with secret..
, variable // ..variable..
, names // ..names!
)
{
// <-- Use spaces, not tabs :)
}
)
, "12"
]
,
[ { id: 21 // Where's 20?
, name: "This is the third element" // It sure is
, func: function() { /* My body feels empty :c */ }
}
, "22" // Notice how 21 is a integer, not a string. Sneaky!
]
];
TL; 博士
这种放置逗号的风格,“Haskell 风格”,有几个优点: