付録 1 フロントエンドのコーディング規約
付録 1 フロントエンドのコーディング規約
JavaScript
全般
(TODO: ESLint、Prettierの導入方法をまとめる。)
ESLint の recommended を押さえておけばいいです。直感的にものすごく変なコードを書かない限りエラーになることはないです。
15 章後半からは基本的に何らかのトランスパイラをかけてブラウザ上で実行される JavaScript を生成するので、あまりコーディング規約に対して神経質にならなくて良いです。とはいえ野放図にコードを書くと保守やレビューで問題があるので、一定のルールを作っておきます。
Better Practice
- 使えるところは極力
constを使う。オブジェクトの内容変更もconstでできる。やむをえない場合のみletを使う。varは使わない。 - 使えるところは極力 arrow function を使う。
functionは極力使わない。asyncも arrow function にできる。 - インデントに使うタブ・スペースの数を統一する。
Project Specific
このフロントエンド研修プロジェクトでは以下のルールでコードを書いてください。
- 変数名は lowerCamelCase とする。
constも別に定数を意味しないのでVARIABLE_NAMEのような表記は使わない。 - インデントはスペース 2 つとする。
- 文字列は string interpolation が必要な時のみ backtick を使う。 string interpolation がない場合シングルクオーテーションとする。
- オブジェクトのキーはキーにハイフンが入る時以外クオートしない。
- セミコロンを省略しない。
- arrow function の変数が 1 つの時もカッコを省略しない。
- オブジェクト、配列の最後の要素のあとにコンマを入れるか入れないかは自由とする。
TypeScript
TODO:
- @typescript-eslint/eslint-plugin
- @typescript-eslint/parser
React
TODO:
- eslint-plugin-react
- eslint-plugin-react-hooks
Vue
全般
eslint-plugin-vue の recommended と Style Guide をまず守りましょう。案外見落としがちなのが以下です。
dataを関数にする。- SFC のファイル名は UpperCamelCase にする、
componentとしても UpperCamelCase で import する。 - SFC template と DOM template には微妙な違い 1 2 がある。
v-ifとv-forを同じ要素に対して使わない。
Project Specific
- template への変数展開は前後にスペースを入れる。
{{ someVariable }}