こんにちは!ぺんしるです。
今日はこんな悩みに答えていきたいと思います。

JavaScriptのコーディングルールは何を定義すべき?
プロジェクトが小規模なら良いですが、大規模になると色々な開発者がプロジェクトに参画することになります。特に指示をしなければ、エンジニアは好き勝手な規約で、実装をおこないます。
ある程度の経験があるエンジニアであれば、それなりのコードを書いてくれるけど、経験が浅いエンジニアは酷い書き方をする人もいて、唖然とすることがあります。

これを回避するには、コーディング規約を定義することです。
ただ、ネットで調べると情報が沢山見つかって、選定が大変ですよね。
そこで今回は、最低限採用すべきコーディング規約を解説していきたいと思います。
ここで書いた規約をそのまま現場で利用するのではなく、現場の特性に合わせて加筆・修正をしてくださいね。
最低限採用すべきコーディング規約
命名規則
まず、ファイル名やメソッド名等の命名規則です。
カテゴリ | 対応方法 | 正 | 誤 |
ファイル名 | 小文字のみを使用する。 区切り文字はハイフン(-)のみ | user-history | User-History |
変数名・メソッド名・名前空間 | ローワーキャメルケース | userName | UserName |
インターフェース名・コンストラクタ | パスカルケース | InterfaceName | Interface_Name |
定数名 | すべての文字を大文字 | MAX_SIZE | MAXSIZE |
規約
ここでは、最低限守るべき具体的なコーディング規約を紹介します。
- if/while等の条件句の開始波括弧は、宣言と同じ行に配置する(改行しない)
- 1行は150文字程度にする
- マジックナンバーは使用しない
- 改行コードはCRLFにする
- ローマ字ではなくヘボン式を使用する。
- 文字列はシングルコーテーションでかこむ
- インデントは半角スペースを使用する。タブは使用しない。
- 文末のセミコロン「;」は省略しない。
- 変数名は、単数か複数化が分かるようにする
誤:UserLists
正:UserList
- 縦方向の行間は2行までにする。
- コメントは、何をするかではなく、なぜその実装にしたかを書く
- コメントは、行の末尾ではなく前の行に書く
- メソッド名やクラス名に使用する単語は2単語以内にする
- 使用しないコードはコメントアウトではなく削除する
- 比較演算子は==ではなく===を使用する
- ハンガリアン記法は使用しない
「バイリンガル記法って何?」って方は、以下のwilipediaを参照してください。
参考
Google等の大手IT企業は自社のコーディングルールを公開しています。これらも参考にしてくださいね。
- Google JavaScript Style Guide 和訳
- Google JavaScript Style Guide
jQuery
- JavaScript Style Guide
Airbnb
- javascript-style-guide
最後に
いかがでしたか?
コーディング規約をしっかり定義しないと、統一感のないソースコードになり、不具合の温床や保守工数の増加にもなります。
最低、ここで記載したルールを守るようにするだけで、ソースコードの品質がびっくりするぐらい上がりますよ(笑)
より良いプログラムを書くには、以下の本が参考になりますよ。
不明点があれば、遠慮なくこちら、またはこちら(匿名での質問ができます)からご質問くださいね。
ではでは。