Claude Code によるソフトウェア開発
Dani Zysman
AI Curriculum Manager @ DataCamp
/init から始め、反復して改善music-analytics-api/
app.py # Application entry point
routes.py # API endpoints
models.py # Artist/Album models
analytics.py # Statistics functions
middleware.py # Request logging
config.py # Session settings
CLAUDE.md # <- Project memory file

ルール: 付箋に収まらない内容は含めません。
> /artists エンドポイントにエラー処理を追加してください。
完了しました。/artists (routes.py:9-19) にエラー処理を追加しました:
- 取得とシリアライズ処理をtry-exceptブロックで囲みました
- データストアが未初期化の場合のAttributeErrorハンドラー
- 500ステータスでエラー詳細を返す汎用例外ハンドラー
return jsonify({'error': f'Failed to retrieve artists: {str(e)}'}), 500
> ユーザーに例外の詳細を公開しないでください。セキュリティリスクになります。内部でログに記録し、
汎用的なメッセージを返してください。CLAUDE.md も更新してください。
/artists を更新し、エラーを内部でログに記録して
汎用的な500メッセージを返すようにしました。CLAUDE.md に次の規約を追加しました:
レスポンスに例外の詳細を含めないこと。
肥大化した例(200行以上)
# Inventory API
This is an Inventory Management
API built with Flask...
## Full Source Code
### routes.py
from flask import jsonify...
[entire file pasted]
### models.py
[entire file pasted]
## API Documentation
GET /items returns...
良い例(15行)
# Inventory API
Flask REST API for inventory.
## Commands
- Run: flask run --port 5001
- Test: pytest tests/
## Conventions
- Use type hints
- Keep routes thin
> @routes.py このAPIにはどんなエンドポイントがありますか?
APIエンドポイント(GETルート6件)
Artists
- GET /artists すべてのアーティスト
- GET /artists/<id> IDで指定した単一のアーティスト
- GET /artists/<id>/albums 特定アーティストのアルバム一覧
Albums
- GET /albums すべてのアルバム
- GET /stats/albums アルバムの人気統計
- GET /stats/average-tracks アルバムあたりの平均トラック数
すべてのエンドポイントはJSONを返します。
# CLAUDE.md - Music Analytics API A Flask-based REST API for music data analytics, providing endpoints for artists, albums, and statistics. ...## Key Files @routes.py - API endpoint definition @models.py - Artist and Album data models with in-memory store ...
CLAUDE.md は永続的な文脈を提供します。@ を使うと、Claude が常に主要ファイルを把握できます。

CLAUDE.md(プロジェクト、共有)
CLAUDE.local.md(プロジェクト、個人用)
~/.claude/CLAUDE.md(グローバル、個人用)
/init と CLAUDE.md → 永続的なプロジェクト文脈Shift+Tab または /plan → プランモードの切り替えthink ... ultrathink → 深い推論(5段階)Claude Code によるソフトウェア開発