コース一覧
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つ足すと、こうなります。

Python

def total_by_category(records, category): ...

これだと、いままでの total_by_category(records) という呼び方がエラーになります。既定値を付ければ両方が生きます。

Python

def total_by_category(records, category=None): ...

category を渡さなければいままで通り全部を集計し、渡したときだけ絞り込む。これが後方互換を保つ足し方です。指示にも「引数には既定値を付けて、渡さないときはいままでと同じ動きにしてください」と書きます。

追加するものは1つに絞る

プレーンテキスト

悪い 絞り込みと並び替えと出力形式の変更をお願いします 良い まず絞り込みだけ足してください

3つ同時に頼むと、差分が大きくなってレビューできません。どれか1つが期待と違ったとき、どこまで戻せばいいのかも分からなくなります。1回の依頼で足す機能は1つにしてください。

追加前の動作を先に確かめる

頼む前に、いまの呼び方でどう動くかを一度実行して控えておきます。追加のあとに同じ呼び方をして、同じ結果が返れば壊れていないと言えます。

この「前の結果を控えておく」は地味ですが、機能追加でいちばん効きます。記憶に頼ると「たぶん前もこうだった気がする」で見逃します。

今回の演習

前回直した total_by_category に、カテゴリで絞り込む機能を足します。既定値を付けて、いままでの呼び方を壊さないようにしてください。

完成条件

  • 触ってよいのは kakeibo.py だけです
  • 既存の呼び方 total_by_category(records) は壊さないでください
  • total_by_category 関数の戻り値で採点します

依頼

kakeibo.py の total_by_category に、カテゴリで絞り込む機能を足してください。いままでの呼び方は壊さないでください。

  • ・触ってよいのは kakeibo.py だけです
  • ・既存の呼び方 total_by_category(records) は壊さないでください
  • ・total_by_category 関数の戻り値で採点します

いまのコード

kakeibo.py

def total_by_category(records):
    """カテゴリごとに金額を合計する"""
    result = {}
    for r in records:
        result[r["category"]] = result.get(r["category"], 0) + r["amount"]
    return result

AI への指示

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

ヒント