すでに素晴らしい答えがたくさんあります。できるだけ明確にするために、私自身のものをあげさせてください。
Haskell で使用する一般的なスタイルであるため、私は個人的にこのコードの書き方を「Haskel スタイル」と呼んでいます。最初に 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
}
そして、私のプロジェクトの 1 つからの 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 のような文書化ジェネレーターを使用した後に得られるものとほぼ同じであり、この種のツールの必要性を取り除きます。
間違いに気づきやすい
このスタイルのコーディングを使用すると、コンマの欠落に気付くのは簡単です。それで始まらない行を探すだけです!スペクトルの反対側では、行末にコンマがあります。見逃した?いいえ、それは最後の要素であるため、または式が次の行に続くためです。そして、リストの最初の要素を見つけるのは、可能な限り簡単です。長い行を扱う場合、最初の要素は見落とされがちですが、最初の要素を独自の行に配置し、その前に右の代わりに[
orを配置することで、簡単に見つけられます。{
,
簡単に拡張可能
「しかし、式が大きくなると、このレイアウト スタイルは処理できなくなります!」と言うかもしれませんが、これはまったく正しいことですが、これはコードの残りの部分とは異なりますか? 列スタイルを使用することで、少なくともコードを読みやすく保つことができると思います。長期的には、コードを列レイアウトに合わせるのに苦労するよりも価値があります。
1つの例ですべて!
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; DR
コンマを配置するこのスタイル、「Haskell スタイル」には、いくつかの利点があります。
- 読みやすい
- 文書化しやすい
- 間違いに気づきやすい
- 簡単に拡張可能