コース一覧
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分

自分で試験する

まん中は必ず通る

生成されたコードを試すとき、多くの人は「ふつうの入力」を入れます。300円と200円を足して500円になった、よし動いた、という確かめ方です。

これはほとんど意味がありません。AI が返すコードは、ふつうの入力ではまず通ります。そこが通ることを確かめても、新しい情報は増えません。

壊れるのはいつも端です。

端を4方向から叩く

端の探し方には型があります。おこづかい帳なら次の4つです。

プレーンテキスト

空 レコードが1件も無いとき 1件 最小の個数のとき 0 金額が0円のとき、月の残高がちょうど0のとき 極端 金額が負のとき、桁がとても大きいとき

「1か月の平均支出を出して」と頼んだコードを考えます。ふつうの月なら正しく出ます。では支出が1件も無い月はどうでしょうか。件数で割る実装なら、ゼロ除算で落ちます。

Python

def average(records): return sum(r["amount"] for r in records) / len(records)

空リストを渡した瞬間に ZeroDivisionError です。ふつうの入力では絶対に見つかりません。

境界は「含む・含まない」で割れる

もう1つの典型が、しきい値のまわりです。「1000円以上の支出を高額として抽出して」と頼んだとします。

プレーンテキスト

999円 入らない 1000円 入る? 入らない? 1001円 入る

ちょうど1000円がどちらになるかは、>= と > のどちらで書かれたかで変わります。指示のときに決めていなければ、AI が勝手に決めています。だから試すべきはちょうど1000円です。999と1001は、どちらの実装でも同じ結果になるので、試しても割れません。

境界値は、実装が割れる1点を狙って入れる。これが試験のコツです。

試す順番

手を動かす順序は次のとおりです。

プレーンテキスト

1 仕様で「こうなるはず」を先に紙に書く 2 そのとおりの値を入れて動かす 3 違ったら、コードではなく仕様のほうを先に疑う

3が大事です。自分の期待が間違っていることもあります。先に期待を書いてから動かすと、あとから結果に合わせて期待を作り変えてしまう事故を防げます。

演習

kakeibo.py の average_amount は、1件以上あれば正しく動きます。空リストで落ちます。また、平均の端数の扱いが決まっていません。落ちない形にして、端数の扱いも決めてください。

完成条件

  • 触ってよいのは kakeibo.py だけです
  • 空リストのときは 0 を返します
  • 平均は小数を切り捨てて整数で返します

依頼

kakeibo.py の average_amount を、空リストでも落ちないようにしてください。平均の端数の扱いも指示で決めてください。

  • ・触ってよいのは kakeibo.py だけです
  • ・空リストのときは 0 を返します
  • ・平均は小数を切り捨てて整数で返します

いまのコード

kakeibo.py

def average_amount(amounts):
    """おこづかい帳の金額の平均を出す"""
    return sum(amounts) / len(amounts)

AI への指示

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

ヒント