コース一覧
Claude Code入門
知らないコードを解説させる

Claude Code入門

AIコーディングエージェント「Claude Code」への指示の出し方、生成コードの読み方とレビュー、テストと安全確認、バグ修正から機能追加までの実践ワークフローを、毎レッスン実際にエージェントと開発しながら学びます。入門で自分が書いたおこづかい帳を、AIと一緒に機能拡張していきます。

1
Claude Codeとは
01. AIエージェントとは5分
02. 起動と最初の対話5分
03. はじめての指示5分
04. 動きのしくみ5分
05. つくる:最初の一巡6分
06. 第1章クイズ5分
2
基本操作
01. コードについて質問する5分
02. 修正を依頼する5分
03. 差分を読む6分
04. 動かして確かめる5分
05. 元に戻す5分
06. つくる:操作の一巡6分
07. 第2章クイズ5分
3
良い指示の出し方
01. 要件の伝え方5分
02. 受け入れ条件6分
03. タスクを分割する6分
04. 計画させてから実行6分
05. CLAUDE.mdを書く6分
06. つくる:指示の型6分
07. 第3章クイズ5分
4
レビューと安全
01. 生成コードを読む6分
02. 自分で試験する6分
03. テストを書かせる6分
04. 危険な操作の見極め6分
05. 修正の往復6分
06. つくる:レビュー一巡7分
07. 第4章クイズ5分
5
実践ワークフロー
01. バグ修正を任せる6分
02. 機能追加を任せる6分
03. リファクタを任せる6分
04. ドキュメントを書かせる6分
05. 知らないコードを解説させる6分
06. つくる:ワークフロー実践7分
07. 第5章クイズ5分
6
総合制作
01. 大型機能を共同実装8分
02. 総レビュー7分
03. 任せる/書くの境界6分
04. 自由拡張8分
05. 完成と次のステップ5分

知らないコードを解説させる

初見のコードは「地図」から作る

他人が書いたコードを渡されたとき、上から順に読むのはいちばん遅いやり方です。先に地図を作ります。AI に頼むと数十秒で出てきます。

プレーンテキスト

このファイルにある関数を一覧にして、それぞれ1行で何をするかを書いてください。 どの関数がどの関数を呼んでいるかも教えてください。

呼び出し関係が分かると、どこが入口でどこが部品かが見えます。入口の関数から読めば、細かい部品は必要になったときだけ読めば済みます。

質問は具体的にする

プレーンテキスト

悪い このコードを説明して 良い この関数に空のリストを渡すと何が返りますか 良い 金額が負の数のとき、どこで弾かれますか

「説明して」だと、コードをなぞっただけの文章が返ってきます。読めば分かることを日本語にしただけで、理解は進みません。

知りたいのはたいてい境界と例外の振る舞いです。空のとき、1件のとき、想定外の値が来たとき。そこを名指しで聞くと、コードのどこに何が書いてあるかが自然に分かります。

説明を鵜呑みにしない

AI の説明は、もっともらしい嘘を含むことがあります。特に「この関数は入力を検証しています」のような、あってほしい機能は捏造されやすい部類です。

確かめ方は単純で、根拠の行を示させることです。

プレーンテキスト

その説明の根拠になっている行を、そのまま引用してください。

引用できないなら、その説明は怪しいと判断します。引用された行を自分で読めば、5秒で真偽が分かります。

理解できたかは直せるかで測る

コードを理解したかどうかは、読んだ感触では測れません。1か所直せたら理解できている、が確実な基準です。

初見のコードに手を入れる順番は次のとおりです。まず地図を作り、次に直す予定の関数だけを詳しく読み、それから小さく直します。いきなり直しはじめると、その関数を誰が呼んでいるかを知らないまま壊します。

今回の演習

他の人が書いたおこづかい帳の集計コードが渡されました。複数の関数が絡んでいます。

まず AI に地図を作らせて、monthly_report が何を返す関数なのかを掴んでください。そのうえで、月の絞り込みが効いていない箇所を1つ直させます。読まずに直そうとすると、どの関数を触ればいいのか分かりません。

完成条件

  • 触ってよいのは kakeibo.py だけです
  • 先に全体の地図を作らせてから、直す場所を決めてください
  • monthly_report 関数の戻り値で採点します

依頼

他人が書いた kakeibo.py です。まず全体を解説させ、そのうえで monthly_report の月の絞り込みが効いていない原因を直させてください。

  • ・触ってよいのは kakeibo.py だけです
  • ・先に全体の地図を作らせてから、直す場所を決めてください
  • ・monthly_report 関数の戻り値で採点します

いまのコード

kakeibo.py

def parse_month(date):
    """日付文字列から年月の部分を取り出す"""
    return date[:7]


def filter_by_month(records, month):
    """指定した年月のレコードだけを取り出す"""
    return list(records)


def total_amount(records):
    """金額を合計する"""
    return sum(r["amount"] for r in records)


def monthly_report(records, month):
    """その月の件数と合計金額を返す"""
    target = filter_by_month(records, month)
    return {"month": month, "count": len(target), "total": total_amount(target)}

AI への指示

残り 4 回
AI に依頼するにはが必要です

ヒント