型4: Claude Code との効果的なチャットの基本
クラス: 初心者
所要時間: 約30分
前提知識: 型1〜3 完了済み
1. 解説
良い指示と悪い指示の違い
Claude Code への指示の質が、結果の質を直接左右する。
| 悪い指示 | 良い指示 |
|---|---|
| 「直して」 | 「src/app.js の42行目のエラーを修正せよ」 |
| 「コード書いて」 | 「Node.js でCSVを読み込んでJSONに変換する関数を書いせよ」 |
| 「テスト」 | 「utils.js の greet 関数に対する Jest テストを書いせよ」 |
| 「何かおかしい」 | 「npm start を実行すると 'Cannot find module' エラーが出ます」 |
効果的な指示の5要素
1. 対象 → どのファイル・関数・行か
2. 動作 → 何をしてほしいか(作成・修正・説明・検索)
3. 条件 → どんな制約・要件があるか
4. 形式 → どんな形式で出力してほしいか
5. 確認 → 何をもって完了とするかコンテキストを与える技術
# ❌ コンテキストなし
「バグを直してください」
# ✅ コンテキストあり
「src/api.js を読んで、fetchUser 関数が undefined を返す原因を
調べて修正してください。Node.js v20 + Express v4 の環境です。」2. 実践
Step 1: 稽古用ファイルを用意
bash
mkdir -p ~/claude-practice/lesson4/src
cd ~/claude-practice/lesson4
cat > src/calculator.js << 'EOF'
function add(a, b) {
return a + b;
}
function subtract(a, b) {
return a - b;
}
function multiply(a, b) {
return a * b
}
function divide(a, b) {
return a / b;
}
function calculateTax(price, rate) {
return price * rate / 100
}
module.exports = { add, subtract, multiply, divide, calculateTax };
EOFStep 2: 漠然とした指示 vs 具体的な指示を比較
bash
claude漠然とした指示(体験):
calculator.js を改善してください。次に /clear でリセットしてから、具体的な指示を試す:
具体的な指示:
src/calculator.js を読んで、以下の3点を改善してください:
1. divide 関数でゼロ除算のエラーハンドリングを追加
2. calculateTax 関数の rate が 0〜100 の範囲外の場合に例外をスロー
3. 各関数に JSDoc コメントを追加Step 3: 段階的な指示を稽古
一度にすべてを指示するのではなく、段階的に進める:
# ステップ1: まず現状を理解させる
src/calculator.js を読んで、各関数の役割を説明してください。
# ステップ2: 問題点を洗い出す
この calculator.js にはどんな改善点がありますか?
# ステップ3: 具体的な修正を依頼
指摘された問題のうち、エラーハンドリングの部分だけ修正してください。Step 4: 「なぜ」を問う習慣
divide 関数にゼロ除算チェックを追加してください。
追加した理由と、実装の選択肢についても説明してください。3. 確認課題(Assignment)
課題 4-1: 指示の改善
以下の「悪い指示」を「良い指示」に書き直し、実際に Claude Code で実行せよ。
悪い指示: 「関数を追加して」
達成条件: 具体的な関数名・仕様・ファイルパスを含む指示に書き直せること
課題 4-2: 段階的な対話
src/calculator.js に対して、以下の順番で対話せよ。
- 「この関数の使い方の例を3つ見せせよ」
- 「テストケースとして考えられるエッジケースを列挙せよ」
- 「最も重要なエッジケース1つだけテストコードを書いせよ」
達成条件: 3ステップが自然な流れでつながること
課題 4-3: エラーメッセージを使った指示
bash
node -e "const {divide} = require('./src/calculator'); console.log(divide(10, 0));"このコマンドの結果(Infinity)を Claude Code に伝えて修正を依頼せよ。
node -e で divide(10,0) を実行すると Infinity が返ります。
0除算のときに Error をスローするよう修正してください。達成条件: 修正後に divide(10, 0) が例外をスローすること
