Airbnb vs Standard – ESLint のスタイルは何を選ぶべきか?

ESLint でベースのルールを使う場合、以下の3つから選べる。

しかし、どういう基準で選べばいいのだろうか。

それぞれの特徴は公式サイトを見ればわかるのだが、具体的にどういう違いがあるのかわからなかったので調査した。

調査する中で Google は使用率が低めだったので今回は除外し、 Airbnb と Standard の違いにフォーカスしてみる。ここに挙げる違いは私が気づいた代表的なものだけなので、これ以外にもいろいろな違いがある。

vs と書いたものの、優劣を決めることが目的ではないので注意していただきたい。

共通のルール

  • インデント: スペース*2
  • NG: “(ダブルクオート) / OK: ‘ (シングルクオート)
  • NG: 無意味なコンストラクタ
// 無意味なコンストラクタの例
class Sub extends Super {
    constructor (...args) {
      super(...args);
    }
}

Airbnb のルール

  • セミコロンは省略しない
  • NG: 1ファイル内に複数クラス
  • NG: var / OK: const letvar は関数の最上部なら書いても良い)
  • NG: console.log
  • NG: 未使用の変数
  • NG: 空の関数

Standard のルール

  • セミコロンは省略する
  • 関数定義の引数リストの前にスペースを入れる
// foo と (value) の間にスペース
function foo (value) { ... }

まとめ

最大の違いはセミコロンを省略するかしないかだろう。これについては JavaScript プログラマーの中でも意見が分かれており、個人的にはどちらにも同意できるところがある。

ただ、これはあくまでベースなのでカスタムすれば「Standard をベースにするが、セミコロンは許容する」といったこともできる。

全体としては Airbnb の方が厳しい傾向にあるようだ。未使用の変数を検出してくれたりするのはかなりありがたい。ただし厳しいと運用が大変なので一長一短だろう。

私の結論としては、どの程度の厳しさを求めるかによって選ぶと良いと思う。大規模プロジェクトで厳しくしたいなら Airbnb 、個人プロジェクトでゆるく作りたいなら Standard 、くらいの使い分けが良いのではないだろうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です