Skip to content

型12: 初心者クラス総合演習

クラス: 初心者
所要時間: 約60分
前提知識: 型1〜11 完了済み


1. 概要

この型は初心者クラスの集大成だ。 型1〜11 で習得したすべてのスキルを使って、1つの小さなプロジェクトを最初から作り上げよ。

今回作るもの

「家計簿 CLI アプリ」

  • 収支を記録するシンプルなコマンドラインツール
  • JSON ファイルにデータを保存
  • 月別の集計・残高確認機能

2. 演習手順

Phase 1: プロジェクトセットアップ(型1〜3 の応用)

bash
mkdir -p ~/claude-practice/lesson12
cd ~/claude-practice/lesson12
claude
家計簿CLIアプリを作ります。まずプロジェクトのセットアップをしてください。
- ディレクトリ構造: src/, tests/, data/
- package.json: name="kakeibo-cli", version="1.0.0"
- CLAUDE.md: このプロジェクトの概要と規約を記述

Phase 2: コアロジックの作成(型4・9 の応用)

src/storage.js を作成してください。
data/transactions.json にデータを読み書きするモジュールで、
以下の関数を含めてください:
- loadTransactions(): JSONファイルから全データを読み込む(ファイルがなければ[]を返す)
- saveTransactions(transactions): JSONファイルに保存
src/kakeibo.js を作成してください。
以下の関数を含めてください:
- addIncome(amount, description, date): 収入を追加
- addExpense(amount, description, date): 支出を追加
- getBalance(): 残高を計算して返す
- getMonthlySummary(year, month): 指定月の収支サマリーを返す
- getAllTransactions(): 全取引を返す

Phase 3: CLIインターフェース(型5・10 の応用)

src/index.js を作成してください。
コマンドライン引数を受け取って kakeibo.js の関数を呼び出すCLIツールです。

使い方の例:
  node src/index.js add income 5000 "給料"
  node src/index.js add expense 1200 "ランチ"
  node src/index.js balance
  node src/index.js summary 2024 1
  node src/index.js list

Phase 4: 動作確認と修正(型7 の応用)

bash
# 実際に動かして確認
node src/index.js add income 200000 "1月給料"
node src/index.js add expense 80000 "家賃"
node src/index.js add expense 30000 "食費"
node src/index.js balance
node src/index.js summary 2024 1
node src/index.js list

エラーが出た場合:

以下のエラーが出ました。修正してください:
[エラーメッセージを貼り付け]

Phase 5: テストと改善(型6・11 の応用)

tests/kakeibo.test.js を作成してください。
以下のテストケースを含めてください:
- 収入追加後に残高が正しく増えること
- 支出追加後に残高が正しく減ること
- 残高がマイナスになる場合の挙動
- getMonthlySummary が正しい月のデータだけ返すこと

Phase 6: ドキュメント整備(型8・11 の応用)

このプロジェクトの README.md を作成してください。
以下を含めてください:
- プロジェクト説明
- セットアップ手順
- 使い方(コマンド一覧)
- ファイル構造

3. 確認課題(Assignment)

課題 12-1: 機能追加

以下の機能を追加するよう Claude Code に依頼せよ:

カテゴリ機能を追加してください:
- addExpense に category 引数を追加(food/transport/entertainment/other)
- getCategoryBreakdown(year, month): カテゴリ別の支出割合を返す
- list コマンドにカテゴリでのフィルタリングオプションを追加

達成条件: カテゴリ付きで支出が記録でき、カテゴリ別集計が取れること

課題 12-2: バグ発見と修正

意図的なバグを含むシナリオでテストせよ:

bash
# 異常値のテスト
node src/index.js add expense -1000 "マイナス支出?"
node src/index.js add income 0 "ゼロ収入?"
node src/index.js add expense "abc" "文字列金額?"

見つかったバグを Claude Code に報告して修正させよ。

達成条件: 不正な入力値に対して適切なエラーメッセージが表示されること

課題 12-3: コードレビュー

src/ ディレクトリのすべてのファイルをレビューしてください。
以下の観点で問題点を指摘してください:
1. バグや潜在的なエラー
2. パフォーマンス上の問題
3. コードの可読性
4. セキュリティ上の懸念

重要度 High / Medium / Low に分類してリストアップしてください。

達成条件: 3つ以上の改善点が具体的に指摘されること


4. 初心者クラス修了チェックリスト

以下の項目がすべてできるようになったか確認せよ:

インストール・認証

基本操作

ファイル操作

問題解決

プロジェクト理解


初心者クラスの修行、完了だ!

次は初級クラスで、ファイル作成・デバッグ・Git 連携を極めよ!

初級クラス 型1 へ →

Claude Code Dojo