コード品質 レッスン6

ドキュメンテーション

README・コードコメント・設計ドキュメントなど、目的に応じたドキュメントの書き分け方を学ぶ

ドキュメントの種類と目的

ドキュメントは一種類ではありません。読み手が誰で、いつ必要とするかによって、 書くべき内容と形式が変わります。目的に合わないドキュメントは、書いても読まれず、 すぐに実態と乖離して「嘘の情報源」になってしまいます。

README

初めてプロジェクトに触れる人向け。概要・セットアップ・使い方。

コードコメント

そのコードを読む人向け。「なぜ」そう書いたかの背景。

設計ドキュメント

意思決定に関わる人向け。選択肢・トレードオフ・理由。

良いREADMEの構成

READMEは「このプロジェクトに初めて触れた人が迷わず動かせるようになる」ことがゴールです。

# ① README.md の構成例
# プロジェクト名

1行でこのプロジェクトが何をするものかを説明する。

## セットアップ
```bash
npm install
npm run dev
```

## 使い方
主要なコマンドや、最初に試すべき操作を書く。

## ディレクトリ構成
迷わないための最小限の地図(詳細はコードを読ませる)。

## 開発への参加方法
テストの実行方法、コーディング規約へのリンクなど。

すべての詳細を書き切ろうとせず、「まず動かす」までの最短距離を示すことに集中します。 詳細な仕様は別ドキュメントやコードそのものに任せます。

コードコメントの書き方

「何をしているか」はコード自体と良い命名で語らせ、コメントはコードだけでは伝わらない背景・理由を補うために使います。

冗長なコメント

// ユーザーを取得する
const user = getUser(id);

価値のあるコメント

// 決済APIの仕様上、キャンセル済み
// ユーザーもここで取得できてしまうため
// 呼び出し側で状態チェックが必須
const user = getUser(id);

ドキュメントを腐らせないために

  • • コードの変更とドキュメントの更新を同じPRに含める
  • • 実装から自動生成できる部分(APIスキーマ等)は自動生成に任せる
  • • 古くなったドキュメントは削除する勇気を持つ(誤情報より無い方がまし)
  • • 「なぜ」を記録するADR等は変更せず追記していく(歴史として残す)

ポイント

  • • ドキュメントは読み手と目的に応じて種類を使い分ける
  • • READMEは「まず動かす」までの最短距離を示す
  • • コメントは「なぜ」を書き、「何を」はコードと命名に語らせる
  • • コード変更とドキュメント更新は同じPRで行い、乖離を防ぐ

確認クイズ

1 / 3

READMEに書くべき内容として最も適切なものはどれか?