claude code用設定追加, 指導用メモ追加

This commit is contained in:
2025-06-30 15:50:59 +09:00
parent 57b0fb4c16
commit 11be49d7a8
3 changed files with 808 additions and 0 deletions

208
todo-app-curriculum.md Normal file
View File

@@ -0,0 +1,208 @@
# TODOアプリ開発カリキュラム (Next.js + TypeScript)
## 概要
このカリキュラムは、JavaScript/TypeScript初学者がNext.js 15 (App Router)を使って実践的なTODOアプリを開発できるようになることを目的としています。
## 学習目標
- React/Next.jsの基本的な概念を理解する
- TypeScriptの型システムに慣れる
- 状態管理の基本を学ぶ
- CRUDアプリケーションの実装パターンを習得する
- モダンなWeb開発のベストプラクティスを身につける
## 前提知識
- HTML/CSSの基礎知識
- JavaScriptの基本文法変数、関数、配列、オブジェクト
- コマンドラインの基本操作
## 学習ステップ
### Phase 1: 基礎理解 (2-3時間)
#### Step 1.1: プロジェクト構造の理解
- `src/app/`ディレクトリの役割
- `page.tsx``layout.tsx`の違い
- TypeScriptファイル.ts/.tsxの意味
#### Step 1.2: 最初のコンポーネント作成
- Hello Worldコンポーネントの作成
- JSXの基本文法
- 型定義の初歩stringやnumberの使い方
### Phase 2: TODOアプリの骨組み作成 (3-4時間)
#### Step 2.1: UIコンポーネントの作成
- TODOリストの表示部分
- TODO入力フォーム
- Tailwind CSSによるスタイリング
#### Step 2.2: 状態管理の導入
- `useState`フックの使い方
- TODOアイテムの型定義
```typescript
type Todo = {
id: number;
text: string;
completed: boolean;
};
```
### Phase 3: 機能実装 (4-5時間)
#### Step 3.1: TODO追加機能
- フォーム送信処理
- 新しいTODOの作成
- リストへの反映
#### Step 3.2: TODO完了機能
- チェックボックスの実装
- 完了状態の切り替え
- 条件付きスタイリング
#### Step 3.3: TODO削除機能
- 削除ボタンの追加
- 配列からの要素削除
- 確認ダイアログ(オプション)
### Phase 4: 高度な機能 (3-4時間)
#### Step 4.1: TODO編集機能
- インライン編集の実装
- 保存とキャンセル処理
#### Step 4.2: フィルタリング機能
- All/Active/Completedの切り替え
- 条件付きレンダリング
#### Step 4.3: データの永続化
- Local Storageの活用
- `useEffect`フックの理解
### Phase 5: 仕上げとベストプラクティス (2-3時間)
#### Step 5.1: コンポーネントの分割
- 再利用可能なコンポーネント化
- propsの型定義
#### Step 5.2: エラーハンドリング
- 入力検証
- エラーメッセージの表示
#### Step 5.3: パフォーマンス最適化
- `useCallback`の基礎
- キー属性の重要性
## 各ステップの実装詳細
### Step 1.1 実装例
```typescript
// src/app/page.tsx
export default function Home() {
return (
<main className="min-h-screen p-8">
<h1 className="text-3xl font-bold">TODOアプリ</h1>
</main>
);
}
```
### Step 2.2 実装例
```typescript
// TODOの状態管理
const [todos, setTodos] = useState<Todo[]>([]);
```
## つまずきやすいポイントと対策
### 1. TypeScriptのエラー
- 型定義が分からない → 最初はanyを使い、後から具体的な型に修正
- 型推論に頼る → VSCodeの補完機能を活用
### 2. 状態更新のイミュータビリティ
- 配列の直接変更はNG → スプレッド構文やfilter/mapを使用
```typescript
// NG
todos.push(newTodo);
// OK
setTodos([...todos, newTodo]);
```
### 3. イベントハンドラーの型
```typescript
const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
// 処理
};
```
## 評価基準
### 基本機能 (必須)
- [ ] TODOの追加ができる
- [ ] TODOの完了/未完了の切り替えができる
- [ ] TODOの削除ができる
- [ ] 適切な型定義がされている
### 追加機能 (推奨)
- [ ] TODOの編集ができる
- [ ] フィルタリング機能がある
- [ ] データが永続化される
- [ ] レスポンシブデザイン
### コード品質
- [ ] コンポーネントが適切に分割されている
- [ ] エラーハンドリングがされている
- [ ] コードが読みやすい
## 発展課題
1. **ドラッグ&ドロップ**での並び替え
2. **カテゴリー機能**の追加
3. **期限設定**機能
4. **Next.js API Routes**を使ったバックエンド実装
5. **認証機能**の追加NextAuth.js
## 推奨リソース
- [Next.js公式ドキュメント](https://nextjs.org/docs)
- [TypeScript Handbook](https://www.typescriptlang.org/docs/handbook/intro.html)
- [React公式チュートリアル](https://react.dev/learn)
- [Tailwind CSS公式ドキュメント](https://tailwindcss.com/docs)
## サポート方法
1. **ペアプログラミング**: 詰まったらすぐに質問
2. **コードレビュー**: 各Phaseごとにレビュー
3. **デバッグセッション**: エラーの読み方を一緒に学習
4. **ベストプラクティス共有**: より良い書き方を随時提案
---
このカリキュラムは柔軟に調整可能です。学習者のペースに合わせて進めてください。