13. BestPractice
Reactプロジェクトをスムーズに進行し、保守しやすくするためのベストプラクティスを紹介します。これらのベストプラクティスに従うことで、コードの品質を向上させ、開発チームの効率を高めることができます。
コードスタイルガイド
一貫したコードスタイルを維持することは、コードの可読性と保守性を向上させるために重要です。ESLintやPrettierを使用して、コードスタイルを自動的にチェックし、整形します。
ESLint
ESLintは、JavaScriptコードの品質をチェックするための静的解析ツールです。ReactプロジェクトでESLintを設定するには、以下の手順を実行します:
-
ESLintのインストール:
npm install eslint --save-dev
-
ESLintの初期設定:
npx eslint --init
-
設定ファイルの例:
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 12,
"sourceType": "module"
},
"plugins": [
"react",
"@typescript-eslint"
],
"rules": {
"indent": ["error", 2],
"linebreak-style": ["error", "unix"],
"quotes": ["error", "single"],
"semi": ["error", "always"]
}
}
Prettier
Prettierは、コードの整形を自動化するツールです。ESLintと組み合わせて使用することで、一貫したコードフォーマットを維持できます。
-
Prettierのインストール:
npm install prettier --save-dev
-
Prettierの設定ファイルの作成:
{
"singleQuote": true,
"trailingComma": "all",
"printWidth": 80
} -
ESLintとPrettierの統合:
npm install eslint-config-prettier eslint-plugin-prettier --save-dev
-
ESLint設定ファイルの更新:
{
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended"
]
}
フォルダ構造
プロジェクトのフォルダ構造は、コードの可読性と保守性に大きな影響を与えます。以下は、一般的なReactプロジェクトのフォルダ構造の例です:
my-app/
├── node_modules/
├── public/
│ ├── index.html
│ └── ...
├── src/
│ ├── assets/ # 画像やフォントなどのアセット
│ ├── components/ # 再利用可能なReactコンポーネント
│ ├── hooks/ # カスタムフック
│ ├── pages/ # ページコンポーネント
│ ├── services/ # APIコールやビジネスロジック
│ ├── utils/ # ユーティリティ関数
│ ├── App.css # グローバルCSS
│ ├── App.js # ルートコンポーネント
│ ├── index.css # グローバルCSS
│ └── index.js # エントリーポイント
├── .gitignore
├── package.json
└── README.md
ドキュメンテーション
適切なドキュメンテーションは、プロジェクトの理解を深め、新しいメンバーがプロジェクトに参加する際のハードルを下げます。
JSDoc
JSDocは、JavaScriptコードにドキュメンテーションコメントを追加するための標準的な方法です。以下は、JSDocコメントの例です:
/**
* Adds two numbers together.
* @param {number} a - The first number.
* @param {number} b - The second number.
* @returns {number} The sum of the two numbers.
*/
function add(a, b) {
return a + b;
}
Storybook
Storybookは、Reactコンポーネントのための開発環境であり、コンポーネントのドキュメントを作成するのに役立ちます。各コンポーネントの使用例や状態を視覚的に確認できます。
Storybookのインストールと設定
-
Storybookのインストール:
npx sb init