概要
静的解析を行うための「linter」と各言語のコーディング規約の紹介を行う 合わせてコードフォーマットを行う「prettier」を紹介する
linter・prettier とは
構文エラーや使用されていない変数の検知などをチェックする処理(プログラム)を「lint」
プログラムが動くパッケージを「linter」と呼ぶ
linter の中で、コードフォーマットのみを行うパッケージの 1 つとして「prettier」が存在する
linter では構文チェック、prettier ではコード整形をおこなうため異なる役割をもつ
使用するメリット
前提として、コーディング規約を人間が完全に守るのは難しく、規約を守られていないコードは読み辛くなり不具合を生むことが知られている
linter・pretter を通すことで、下記のようなメリットがある
- 公開前に事前にエラーを検知できる
→ テストの手戻り工数を削減 - 規約を意識せずに実装へ集中できる
→ 実装すべき処理・コーディングへ集中できる - レビュー・調査時に不要な脳のリソースを使用しない
→ 新卒・既卒関わらず一定の品質を担保できる
設定方法
設定方法によっていくつか動作タイミングがある
基本はローカルで動作させ「皆が見える場所へファイルを上げる前に確認する」
注意点としてどの linter/prettier もパッケージとして配布されているため、パッケージを理解していることが前提となる
保存したら動作
エディターでファイルの保存時に自動で実行する
例:vscode prettier
VSCode でファイル保存時に Prettier に自動整形してもらう
コミット・プッシュ前に動作
git hook を用いる
※hook ファイルへ直接書く方法は開発者の環境に依存するため、「npm package」を導入している案件であれば「husky」も提案する
例:husky linter
git のイベントをフックして自動 lint をかける
各言語によるコーディング規約
最後に linter がなにを正とするか、各言語で使用されているモダンな規約を紹介する
- html、CSS:Google HTML/CSS Style Guide まとめ
※記事内参照元:Google HTML/CSS Style Guide - js:JavaScript のスタイルガイドまとめ(おすすめ 4 選)
- php:PHP コーディング規約まとめ
※記事内参照元:PSR-2: Coding Style Guide - python:PEP: 8