イテレーション 2 計画
概要
| 項目 |
内容 |
| イテレーション |
2 |
| 期間 |
Week 3-4(2 週間) |
| ゴール |
TypeScript 版を Python 版から展開し、TDD で実装する |
| 目標 SP |
3 |
ゴール
イテレーション終了時の達成状態
- 記事:
docs/article/node/ に全 9 章 + index.md が完成している
- 実装:
apps/node/ に TDD 実装コードが動作する状態で存在する
- 公開: mkdocs.yml に TypeScript 版が反映され、ローカルプレビューで閲覧可能
成功基準
ユーザーストーリー
対象ストーリー
| ID |
ユーザーストーリー |
SP |
優先度 |
| US-002 |
TypeScript 版を Python 版から展開する |
3 |
必須 |
| 合計 |
|
3 |
|
ストーリー詳細
US-002: TypeScript 版を Python 版から展開する
ストーリー:
学習者として、TypeScript でアルゴリズムとデータ構造を TDD で学びたい。なぜなら、TypeScript は JavaScript の型付き版として広く使われており、フロントエンド・バックエンド両方のエンジニアに親しみやすいからだ。
受入条件:
- 全 9 章が Python 版を基に TypeScript 版として再構成されている
- 各章に TDD のコード例(テスト → 実装 → リファクタリング)が含まれている
apps/node/ で全テストがパスする
タスク
1. プロジェクト初期化(0.5 SP)
| # |
タスク |
見積もり |
状態 |
| 1.1 |
apps/node/ プロジェクト初期化(package.json, Jest, TypeScript 設定) |
1h |
[x] |
| 1.2 |
docs/article/node/index.md 作成 |
0.5h |
[x] |
| 1.3 |
mkdocs.yml に TypeScript セクション追加 |
0.5h |
[x] |
| 1.4 |
Nix devShell .#node の動作確認 |
0.5h |
[x] |
小計: 2.5h
2. 第 1 部: 基本(第 1〜3 章)(1.0 SP)
| # |
タスク |
見積もり |
状態 |
| 2.1 |
第 1 章 基本的なアルゴリズム — Python 版から変換・TDD 実装 |
1.5h |
[x] |
| 2.2 |
第 2 章 配列 — Python 版から変換・TDD 実装 |
1.5h |
[x] |
| 2.3 |
第 3 章 探索アルゴリズム — Python 版から変換・TDD 実装 |
1.5h |
[x] |
小計: 4.5h
3. 第 2 部: データ構造(第 4〜5 章)(0.5 SP)
| # |
タスク |
見積もり |
状態 |
| 3.1 |
第 4 章 スタックとキュー — Python 版から変換・TDD 実装 |
1.5h |
[x] |
| 3.2 |
第 5 章 再帰アルゴリズム — Python 版から変換・TDD 実装 |
1.5h |
[x] |
小計: 3h
4. 第 3 部: ソートと文字列(第 6〜7 章)(0.5 SP)
| # |
タスク |
見積もり |
状態 |
| 4.1 |
第 6 章 ソートアルゴリズム — Python 版から変換・TDD 実装 |
2h |
[x] |
| 4.2 |
第 7 章 文字列処理 — Python 版から変換・TDD 実装 |
1.5h |
[x] |
小計: 3.5h
5. 第 4 部: 高度なデータ構造(第 8〜9 章)(0.5 SP)
| # |
タスク |
見積もり |
状態 |
| 5.1 |
第 8 章 リスト — Python 版から変換・TDD 実装 |
2h |
[x] |
| 5.2 |
第 9 章 木構造 — Python 版から変換・TDD 実装 |
2h |
[x] |
小計: 4h
タスク合計
| カテゴリ |
SP |
理想時間 |
状態 |
| プロジェクト初期化 |
0.5 |
2.5h |
[x] |
| 第 1 部: 基本 |
1.0 |
4.5h |
[x] |
| 第 2 部: データ構造 |
0.5 |
3h |
[x] |
| 第 3 部: ソートと文字列 |
0.5 |
3.5h |
[x] |
| 第 4 部: 高度なデータ構造 |
0.5 |
4h |
[x] |
| 合計 |
3.0 |
17.5h |
|
1 SP あたり: 約 5.8h(IT-1 実績: 4.6h/SP、TypeScript は型定義分やや増)
スケジュール
Week 3(Day 1-5)
| 日 |
タスク |
| Day 1 |
プロジェクト初期化 + 第 1 章 基本的なアルゴリズム |
| Day 2 |
第 2 章 配列 |
| Day 3 |
第 3 章 探索アルゴリズム |
| Day 4 |
第 4 章 スタックとキュー |
| Day 5 |
第 5 章 再帰アルゴリズム |
Week 4(Day 6-10)
| 日 |
タスク |
| Day 6 |
第 6 章 ソートアルゴリズム |
| Day 7 |
第 7 章 文字列処理 |
| Day 8 |
第 8 章 リスト |
| Day 9 |
第 9 章 木構造 |
| Day 10 |
全体レビュー、mkdocs 確認、バグ修正 |
TypeScript 実装方針
Python → TypeScript 変換ガイドライン
| Python |
TypeScript |
list |
Array<T> / T[] |
dict |
Record<K, V> / Map<K, V> |
| 型なし |
明示的な型アノテーション |
None |
null / undefined |
クラス(__init__) |
クラス(constructor) |
| デコレータ |
ジェネリクス |
テストフレームワーク
- ランナー: Jest(
@jest/globals)
- 型チェック: TypeScript(
tsc --noEmit)
- フォーマット: ESLint + Prettier
- カバレッジ: Jest coverage
IT-1 ふりかえりの反映(改善 DoD)
IT-1 の Try を今イテレーションの DoD に組み込む:
リスクと対策
| リスク |
影響度 |
対策 |
| TypeScript の型定義で実装が複雑になる |
中 |
Python 版の構造を優先し、型は any から始めてリファクタリング |
| Jest 設定に手間取る |
低 |
ts-jest プリセットを利用 |
| 再帰アルゴリズム(8 王妃問題)が遅い |
中 |
slow テストを @jest/globals の test.skip で分離 |
完了条件
Definition of Done
デモ項目
- MkDocs で TypeScript 版全 9 章を閲覧
apps/node/ で Jest 実行、全テストパス
- 第 3 章探索アルゴリズムの TDD サイクルをウォークスルー
更新履歴
| 日付 |
更新内容 |
更新者 |
| 2026-04-11 |
初版作成 |
- |
| 2026-04-11 |
全 9 章実装完了・進捗更新 |
- |
関連ドキュメント