Claude Code によるソフトウェア開発
Dani Zysman
AI Curriculum Manager @ DataCamp

$ curl -fsSL https://claude.ai/install.sh | bash
詳細はこちら: https://code.claude.com/docs/en/overview
$ cd /path/to/your/project
$ claude
便利なコマンド:
/clear: 会話履歴をクリア/exit または Ctrl + C: セッションを終了/help: 使用可能なコマンドを表示def process_data(records, threshold=0.5):
result = []
for r in records:
if r.get('value') and r['value'] > threshold:
x = r['value'] * 1.1 if r.get('premium') else r['value']
result.append({'id': r['id'], 'adjusted': x, 'flag': x > 1})
return sorted(result, key=lambda d: d['adjusted'], reverse=True)[:10]
> process_data() は何をする関数ですか?
process_data(): フィルタリング、調整、ランキング
フィルタリング: value が threshold(デフォルト: 0.5)を超えるレコードを保持
調整: premium=True の場合、10%のブーストを適用
変換: id、調整後の値、flag(adjusted > 1 の場合)を出力
ソート: adjusted の降順で上位10件を返す
> process_data() に docstring を追加してください
"""Filter records above threshold, apply 10% premium uplift, and return
the top 10 by adjusted value."""
def add_item(item, item_list=[]):
item_list.append(item)
return item_list
問題点がわかりますか?
> add_item() のバグを見つけて修正してください
バグを発見し、修正しました: 原因はミュータブルなデフォルト引数でした。
item_list=[] を使うと、リスト引数を渡さずに add_item() を呼び出した場合、
すべての呼び出しが同じデフォルトのリストオブジェクトを共有してしまい、
呼び出しのたびに要素が蓄積されます。
def add_item(item, item_list=None):
if item_list is None:
item_list = []
item_list.append(item)
return item_list
| 問題 | 解決策 |
|---|---|
| 「コンテキストウィンドウの上限超過」 | /clear でリセット |
| レート制限 | 待ってから再試行 |
| 結果が不十分 | プロンプトを1つのタスクに絞る |

Claude Code によるソフトウェア開発