メインコンテンツまでスキップ

13. BestPractice

Reactプロジェクトをスムーズに進行し、保守しやすくするためのベストプラクティスを紹介します。これらのベストプラクティスに従うことで、コードの品質を向上させ、開発チームの効率を高めることができます。

コードスタイルガイド

一貫したコードスタイルを維持することは、コードの可読性と保守性を向上させるために重要です。ESLintやPrettierを使用して、コードスタイルを自動的にチェックし、整形します。

ESLint

ESLintは、JavaScriptコードの品質をチェックするための静的解析ツールです。ReactプロジェクトでESLintを設定するには、以下の手順を実行します:

  1. ESLintのインストール

    npm install eslint --save-dev
  2. ESLintの初期設定

    npx eslint --init
  3. 設定ファイルの例

    {
    "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と組み合わせて使用することで、一貫したコードフォーマットを維持できます。

  1. Prettierのインストール

    npm install prettier --save-dev
  2. Prettierの設定ファイルの作成

    {
    "singleQuote": true,
    "trailingComma": "all",
    "printWidth": 80
    }
  3. ESLintとPrettierの統合

    npm install eslint-config-prettier eslint-plugin-prettier --save-dev
  4. 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のインストールと設定

  1. Storybookのインストール

    npx sb init
  2. ストーリーファイルの作成

    // Button.stories.js
    import React from 'react';
    import { Button } from './Button';

    export default {
    title: 'Button',
    component: Button,
    };

    const Template = (args) => <Button {...args} />;

    export const Primary = Template.bind({});
    Primary.args = {
    primary: true,
    label: 'Button',
    };

パフォーマンス監視

アプリケーションのパフォーマンスを監視し、潜在的な問題を早期に発見することは重要です。Reactでは、以下のツールと手法を使用してパフォーマンスを監視できます。

React DevTools

React DevToolsは、ブラウザ拡張として提供されるツールで、コンポーネントツリーの検査やパフォーマンスプロファイリングを行うことができます。

Lighthouse

Lighthouseは、Google Chromeの開発者ツールに組み込まれているオープンソースのツールで、ウェブページのパフォーマンス、アクセシビリティ、SEOを監査できます。

使用例

  1. Lighthouseの実行
    • Chrome DevToolsを開き、Lighthouseタブに移動します。
    • 監査を実行するカテゴリを選択し、Generate reportボタンをクリックします。

このように進めていきます。他に追加や修正の希望があればお知らせください。