Claude マニュアル

エンジニアリング活用ユースケース

Claude はソフトウェア開発のあらゆるフェーズで活用できます。コードを書くだけでなく、設計の壁打ち、バグの調査、テストの生成、ドキュメントの整備まで、開発ワークフロー全体を加速してくれるパートナーです。

この記事では、エンジニアが日常業務で Claude をどのように使えるかを、具体的なプロンプト例とコマンド例とともに紹介します。

エンジニアリングで Claude を使うメリット

生産性の向上

繰り返しの多い作業(ボイラープレートコードの生成、テストの作成、ドキュメントの整備)を Claude に任せることで、本質的な設計や問題解決に集中できます。

  • ユニットテストを書く時間が大幅に短縮される
  • 初めて触る API やライブラリのキャッチアップが速くなる
  • ドキュメント作成の心理的ハードルが下がる

学習の加速

Claude は「なぜそうなるのか」を説明しながら教えてくれます。Stack Overflow で断片的な答えを探すより、自分のコードの文脈に沿った解説が得られます。

  • 新しい言語やフレームワークに慣れるのが速くなる
  • 既存コードベースを引き継いだときの把握が速くなる
  • アーキテクチャの選択肢をすばやく比較できる

品質の向上

Claude をコードレビュアーとして活用することで、見落としがちなバグ、セキュリティ上の問題点、改善できる設計を指摘してもらえます。

どの Claude を使えばいいか

ユースケース推奨ツール
コーディング・ファイル操作Claude Code(ターミナル)
設計の壁打ち・議論Claude Web / Desktop
CI/CD への組み込み、自動化API
IDE でコードを書きながらVS Code / JetBrains 統合

コーディング支援

コード生成とリファクタリング

Claude Code を使うと、自然言語でコードを書かせたり、既存コードを改善させたりできます。

プロジェクトのディレクトリで Claude Code を起動して指示する例:

claude
> src/utils/date.ts に日付フォーマット関数を追加して。
  ISO 8601 形式の文字列を受け取り、"2024年1月15日" 形式で返す関数。
  TypeScript の型定義も含めて。
> src/components/Button.tsx をリファクタリングして。
  現在 props が増えすぎているので、variant パターンを使って整理したい。

リファクタリングを依頼するときは、変更の方針や制約を一緒に伝えると精度が上がります。

> src/api/users.ts の fetchUsers 関数をリファクタリングして。
  以下の制約で:
  - 外部インターフェースは変えない
  - エラーハンドリングを強化する
  - 型定義を厳密にする(any を使わない)

IDE 統合での使い方

VS Code や JetBrains IDEs では、エディタ内から Claude に直接コード補完や説明を依頼できます。コードを書きながらその場で質問できるため、コンテキストの切り替えが不要です。

詳しくは IDE 統合ガイド を参照してください。

つまづきポイント: Claude に「このコードを直して」とだけ伝えると、期待と違う変更をされることがあります。「どこを、どのように直してほしいか」を明確に伝えましょう。たとえば「パフォーマンスを改善して。ただし処理の結果は変えないで」のように制約を添えると意図通りの結果になりやすいです。

デバッグ

エラーメッセージの解析

エラーが出たとき、メッセージとスタックトレースをそのまま Claude に渡すと、原因と解決策を教えてくれます。

# エラーログをそのまま渡す
cat error.log | claude -p "このエラーの原因を特定して、修正方法を教えて"

# ビルドエラーを解析する
pnpm build 2>&1 | claude -p "このビルドエラーを解析して、修正手順を教えて"

Claude Code の対話モードで直接貼り付けることもできます。

> 以下のエラーが出て困っています。原因と対処法を教えてください:

TypeError: Cannot read properties of undefined (reading 'map')
    at UserList (/src/components/UserList.tsx:24:23)
    at renderWithHooks (/node_modules/react-dom/...)

Claude はエラーの種類を特定し、「users が undefined になっているケースがある」「初期値を空配列にすべき」などの具体的な修正案を提示してくれます。

ログ分析と根本原因の特定

長いログファイルや複雑な障害調査も Claude が助けてくれます。

# アプリケーションログの異常を検出する
tail -n 1000 /var/log/app.log | claude -p "このログから異常なパターンを見つけて、根本原因の仮説を立てて"

# 特定の期間のエラーを集計する
grep "ERROR" app.log | claude -p "エラーの種類別に集計して、最も頻度が高いものから順に並べて"

つまづきポイント: ログに個人情報や機密情報が含まれている場合は、Claude Web(claude.ai)やAPI に送らないよう注意してください。ローカルで動く Claude Code であれば、コードはローカルのファイルシステムに直接アクセスするため、外部に送るデータをコントロールしやすいです。ただし Claude Code も会話内容は Anthropic のサーバーに送られます。詳しくは セキュリティと機密情報の取り扱い を参照してください。

コードレビュー

PR レビューの自動化

コードをコミットする前に Claude にレビューさせることで、セルフレビューの質が上がります。

# 現在の変更をレビューしてもらう
git diff | claude -p "このコードの変更をレビューして。バグ、セキュリティ上の問題、改善できる点を指摘して"

# 特定のファイルをレビューする
cat src/api/auth.ts | claude -p "このファイルをセキュリティの観点でレビューして"

# PR のタイトルとコミットメッセージを生成する
git diff main | claude -p "この変更の内容をもとに、PR のタイトルと説明文を日本語で書いて"

Claude Code の対話モードでは、ファイルを直接参照しながらレビューを依頼できます。

> @src/api/users.ts このファイルをレビューして。
  特に以下の観点で確認してほしい:
  1. 入力値のバリデーションが適切かどうか
  2. エラーハンドリングが十分かどうか
  3. SQL インジェクションの危険がないかどうか

セキュリティチェック

セキュリティの脆弱性チェックも Claude が助けてくれます。

> 認証周りのコードをレビューして。OWASP Top 10 の観点で問題がないか確認したい。
  対象ファイル: src/middleware/auth.ts, src/api/login.ts
> @src/utils/sanitize.ts XSS 対策が適切かどうかを確認して。
  攻撃パターンの例も一緒に教えてほしい。

つまづきポイント: Claude はコードの問題点を指摘してくれますが、セキュリティ診断ツールの代替にはなりません。本番環境に影響するセキュリティ上の変更は、必ず専門家のレビューや自動スキャンツール(SAST/DAST)と組み合わせて確認してください。

設計・アーキテクチャ

システム設計の壁打ち

実装を始める前に Claude と設計を議論することで、後から大きく変更することを防げます。Claude Web(claude.ai)が会話形式で設計を深めやすく、向いています。

プロンプト例:

新しい通知システムを設計したい。
要件:
- ユーザーにメール・プッシュ通知・SMS を送れる
- 通知の種類は今後増やせるようにしたい
- 大量配信(1万件以上)にも対応したい

技術スタック: Node.js, PostgreSQL, AWS

どんなアーキテクチャが適切か、選択肢をいくつか提示してほしい。
それぞれのトレードオフも教えてほしい。

技術選定の比較

ライブラリやフレームワークを選ぶときも Claude が助けてくれます。

React の状態管理ライブラリを選びたい。
候補: Redux Toolkit、Zustand、Jotai

プロジェクトの条件:
- チームの人数: 5人
- アプリの規模: 中規模 SPA
- テストのしやすさを重視したい
- 学習コストは低い方がいい

それぞれの特徴と、この条件に合う選択肢を教えてほしい。

設計ドキュメントの作成

既存の実装から設計ドキュメントを自動生成することもできます。

# システム構成の説明ドキュメントを生成
claude -p "src/ ディレクトリを読んで、このシステムのアーキテクチャ概要ドキュメントを Markdown 形式で生成して"
> このプロジェクトの src/api/ ディレクトリを読んで、
  API の設計について ADR(Architecture Decision Record)を書いて。
  特にルーティングの方針と認証の仕組みについて記録してほしい。

テスト

ユニットテストの自動生成

テストを書くのは時間がかかりますが、Claude に任せることで大幅に効率化できます。

# 特定のファイルのテストを生成する
cat src/utils/format.ts | claude -p "このファイルの関数に対するユニットテストを Vitest で書いて。エッジケースも網羅してほしい"

Claude Code では対話しながらテストを育てていけます。

> @src/services/userService.ts このサービスのユニットテストを書いて。
  使用フレームワーク: Vitest
  モックライブラリ: vi.fn()
  外部 API の呼び出しはすべてモックにしてほしい
> 生成してくれたテストを見ると、ユーザーが存在しない場合のエラーケースが足りていない。
  追加してほしい。

テストケースの網羅性チェック

既存のテストが十分かどうかも確認できます。

> @src/utils/__tests__/date.test.ts 現在のテストケースを確認して、
  カバーできていないエッジケースを教えて。
  特に:
  - タイムゾーンの扱い
  - 無効な日付の入力
  - 境界値(年またぎ、うるう年など)

E2E テストシナリオの作成

Playwright や Cypress を使った E2E テストのシナリオも Claude が書けます。

> ユーザーログインフローの E2E テストを Playwright で書いて。
  シナリオ:
  1. 正常ログイン(正しいメールとパスワード)
  2. パスワード誤り(3回失敗でロック)
  3. パスワードリセットフロー

  ベースURL: http://localhost:3000

つまづきポイント: Claude が生成したテストは、必ず実際に動かして確認してください。生成されたテストが実装の仕様を正確に反映していない場合があります。特に「このテストは通るべきか、落ちるべきか」を確認しながら使うと品質が上がります。

ドキュメント

README の生成

プロジェクトの概要を Claude Code に読ませて README を自動生成できます。

claude -p "このプロジェクトを全体的に読んで、わかりやすい README.md を生成して。
インストール手順、基本的な使い方、設定方法を含めてほしい"

API ドキュメントの生成

コードから API の仕様書を生成することもできます。

> src/api/ ディレクトリのエンドポイントを読んで、
  OpenAPI 3.0 形式の仕様書を生成して。
  各エンドポイントのパラメータ、レスポンス形式、エラーコードを網羅してほしい。

コードコメントの追加

コードにコメントを追加する作業も自動化できます。

> @src/utils/crypto.ts この暗号化ユーティリティに JSDoc コメントを追加して。
  各関数の用途、引数の説明、戻り値の型、使用例をコメントで記載してほしい。

ADR(Architecture Decision Record)の生成

設計の決定を記録する ADR も Claude が書けます。

> 先日の議論で、状態管理に Redux Toolkit を採用することにした。
  選択の背景、検討した代替案、トレードオフをまとめた ADR を
  docs/adr/ ディレクトリに Markdown 形式で作成して。

学習・キャッチアップ

既存コードベースの理解

引き継いだプロジェクトや大規模なコードベースを理解するのに Claude Code は特に役立ちます。

# プロジェクト全体の概要を把握する
claude -p "このプロジェクトの構成を説明して。主要なモジュールと、それぞれの役割を教えてほしい"

# 特定の機能の動作を理解する
claude -p "ユーザー認証の処理がどこで行われているか追って、処理フローを図解してほしい"

対話モードで深掘りするのも効果的です。

> この決済処理のコードを読んで、全体の流れを説明して

> (説明を受けた後)エラーが起きたとき、どの部分でトランザクションがロールバックされる?

> src/services/payment/rollback.ts の実装はどうなっている?

新しい技術の学習

新しい言語やフレームワークを学ぶとき、自分のプロジェクトに絡めて質問すると理解が深まります。

> GraphQL を始めて導入しようとしている。
  現在 REST API を使っているが、このプロジェクトで GraphQL に移行する場合の
  手順とベストプラクティスを教えてほしい。
  特に認証周りの実装方法を詳しく教えてほしい。
> Rust を勉強中です。Python で書いた以下の関数を Rust で書き直してほしい。
  コードの差分とともに、Rust ならではの考え方(所有権、借用など)を解説してほしい。

つまづきポイント: Claude は知識のカットオフ(学習データの終了日)があるため、最新バージョンの情報が正確でないことがあります。「このライブラリの最新の書き方を教えて」と聞くときは、バージョンを明示して「React 19 の use() フックの使い方を教えて」のように質問すると精度が上がります。公式ドキュメントと合わせて確認する習慣も大切です。

セキュリティ上の注意

Claude を開発に使う際は、以下の点に注意してください。

機密コードの取り扱い

Claude Web(claude.ai)や API にコードを送る際、以下のものが含まれていないか確認してください。

  • API キーや秘密鍵 — コード内にハードコードされた認証情報
  • 個人情報 — ユーザーデータ、メールアドレス、氏名などが含まれるサンプルデータ
  • 社内機密情報 — 公開されていない設計資料、顧客情報、ビジネスロジック
# .env ファイルは絶対に含めない
# 環境変数はプレースホルダーに置き換えてから共有する

# 悪い例(実際のキーが含まれる)
cat config.ts | claude -p "このコードをレビューして"

# 良い例(機密情報を除いたファイルのみ共有)
cat src/components/Button.tsx | claude -p "このコードをレビューして"

Claude Code のセキュリティ

Claude Code はローカルのファイルシステムに直接アクセスしますが、実行したコマンドや変更内容は会話履歴として Anthropic のサーバーに送られます。機密性の高いプロジェクトでは、利用するプランやデータ保持ポリシーを確認してください。

本番環境には直接実行しない

Claude Code に「本番環境のデータベースを更新して」などの指示を出す場合は注意が必要です。Claude が意図と異なる操作をする可能性があります。本番環境に影響する変更は、必ず内容を確認してから手動で実行してください。

コード生成の検証

Claude が生成したコードは、必ず以下を確認してから使用してください。

  • 動作確認: 実際にテストを実行して期待通りに動くか確認する
  • セキュリティ確認: 特に認証・認可・入力バリデーション周りは慎重にレビューする
  • 依存ライブラリ: 生成コードが参照するライブラリが実際にインストールされているか確認する

実践Tips

プロンプトの精度を上げるコツ

エンジニアリング用途では、以下のような指示の出し方が効果的です。

制約を明示する

> src/api/user.ts を修正して。
  ただし:
  - 関数のシグネチャは変えない
  - 外部ライブラリは追加しない
  - TypeScript の strict モードに準拠する

期待する出力形式を指定する

> このシステムのデータフローを説明して。
  Mermaid 図(flowchart LR)の形式で出力してほしい。

段階的に進める

大きな変更を一度に頼むより、段階的に依頼する方がミスが少なくなります。

# Step 1: 現状把握
> @src/services/ ここのサービス層の設計を分析して

# Step 2: 方針確認
> 依存性注入パターンを導入したい。どのように進めるか提案してほしい

# Step 3: 実装
> まず UserService から始めて、段階的にリファクタリングして

CLAUDE.md でチームの規約を共有する

チームで Claude Code を使う場合、CLAUDE.md にコーディング規約やアーキテクチャの方針を書いておくと、Claude の回答がプロジェクトに合ったものになります。

# コーディング規約

## 命名規則
- 変数・関数: camelCase
- コンポーネント: PascalCase
- 定数: UPPER_SNAKE_CASE

## アーキテクチャ方針
- ビジネスロジックは src/services/ に集約する
- データベースアクセスは src/repositories/ のみで行う
- コンポーネントはプレゼンテーション層に留め、ビジネスロジックを含めない

## テスト方針
- ユニットテスト: Vitest を使う
- モックは vi.fn() を使い、外部依存はすべてモックにする
- テストファイルは実装ファイルと同じディレクトリに置く(__tests__/)

次のステップ

エンジニアリング活用をさらに深めるためのリソースです。