OpenAIからClaudeに乗り換えてTODOアプリ開発に挑戦
目的
最近、OpenAIからClaudeに乗り換えたので、その可能性を探るため、ターミナルで動作するTODOアプリの作成に挑戦しました。
アプローチ
Claude Code(@anthropic-ai/claude-code
)を使用してターミナルベースのTODOアプリケーションを開発しました。まず、プロジェクト要件を明確化するためのCLAUDE.mdファイルを作成し、Shell ScriptとRubyの2つのアプローチで実装を試みました。
Claude Codeのインストール
npm install -g @anthropic-ai/claude-code
実装プロセス
第一段階:Shell Script実装
最初のアプローチとして、以下のプロンプトでShell Scriptによる実装を試しました:
CLAUDE.mdの内容に従って、shell scriptを作ってほしい。
実装時間: 約10分
発生した問題:
- カレンダー表示の不具合: 何度試行しても正常に表示されない
- データ整合性の問題: 生データではプロジェクト番号とIDの区別ができていないが、標準出力では意図した通りに表示される(内部で補正処理が行われている可能性)
データ構造:
CSVファイルでのデータ保存を選択しましたが、機能追加に伴い複雑な構造になりました:
id,project_id,project_name,task_id,task_name,level,priority,status,created_date,completed_date,parent_id
この段階で、データ管理にはstructやclassを使用した方が適切であることが明らかになったため、Ruby実装への切り替えを決定しました。
第二段階:Ruby実装
Ruby版のCLAUDE.mdを新たに作成し、実装を再開しました。
実装時間: 10分未満(実感としてShell Script版作成時間より短い)
結果:
- 生データと表示に齟齬なし
- データ整合性の問題解決
- 追加機能の実装もスムーズ
- トラブル発生なし
Shell Script版とRuby版の開発効率の差は、データ構造の適切な選択によるものと考えられます。
CLAUDE.mdの自動更新
Ruby版完成後、以下のプロンプトでドキュメントの更新を実行:
ここまでの機能追加、変更を踏まえて、CLAUDE.mdを書き直してください
疑問点: 以下の要件の根拠が不明確。実際のテストやベンチマークは実施されていないため、どのような基準で設定されたのか検証が必要です。
## パフォーマンス要件
- **高速起動**: 1秒以内
- **大量データ対応**: 1000タスク程度
- **レスポンシブ**: インタラクティブ操作感
- **メモリ効率**: 全データメモリ管理でも軽量
実際の運用と調整
手動修正箇所: カレンダー表示の罫線のずれのみ手動で修正
その他のコード: Claude Codeによる自動生成のまま使用
開発統計:
Total cost: $7.00
Total duration (API): 24m 41.3s
Total duration (wall): 18h 42m 9.1s
Total code changes: 1944 lines added, 290 lines removed
Token usage by model:
claude-3-5-haiku: 35.1k input, 2.6k output, 0 cache read, 0 cache write
claude-sonnet: 252 input, 64.9k output, 6.1m cache read, 1.1m cache write
注:wall時間が長いのは、開発途中で就寝したためと思われる。
成果物
GitHub リポジトリ: https://github.com/object-kazu/strange-todoist
学んだこと
重要な教訓
- 早期の方向転換の重要性: Claude Codeが行き詰まった際に、過信せずに要件を見直し、別のアプローチを検討することが重要
- 適切な技術選択: データ構造に適した言語・手法の選択が開発効率に大きく影響
- 人間の判断力の必要性: AIが生成する要件や仕様についても、批判的に検証する必要がある
開発における時間配分
最も時間を要したのは、生成されたコードと実行結果を分析し、適切なプロンプトを考える作業でした。AIとの協働において、この「プロンプトエンジニアリング」のスキルが重要であることを実感しました。
まとめ
Claude Codeは強力なツールですが、万能ではありません。開発者がAIの出力を適切に評価し、必要に応じて方向転換する判断力が、効率的な開発の鍵となります。今回の経験を通じて、AI支援開発における人間の役割の重要性を再認識しました。
注意点
この記事も、Web版Claudeによって多く加筆訂正されています。特に、「まとめ」は、claudeの意見が8割です。
追記 2025年6月30日
日本語入力周りでエラーが出ます。
近いうちに、テストを追加してデバッグするつもりです。