Skip to content

イテレーション 2 計画

概要

項目 内容
イテレーション 2
期間 Week 3-4(2 週間)
ゴール TypeScript 版を Python 版から展開し、TDD で実装する
目標 SP 3

ゴール

イテレーション終了時の達成状態

  1. 記事: docs/article/node/ に全 9 章 + index.md が完成している
  2. 実装: apps/node/ に TDD 実装コードが動作する状態で存在する
  3. 公開: mkdocs.yml に TypeScript 版が反映され、ローカルプレビューで閲覧可能

成功基準

  • 9 章すべてのファイルが作成されている
  • 各章のコード例が apps/node/ の実コードと同期している(記事記述と実装を同一コミットで完結)
  • apps/node/ のテストが全てパス
  • mkdocs.yml の nav に TypeScript 全 9 章が追加されている
  • ローカルプレビューで表示確認済み
  • 各章執筆時に Python 版との内容差分チェックを実施済み

ユーザーストーリー

対象ストーリー

ID ユーザーストーリー SP 優先度
US-002 TypeScript 版を Python 版から展開する 3 必須
合計 3

ストーリー詳細

US-002: TypeScript 版を Python 版から展開する

ストーリー:

学習者として、TypeScript でアルゴリズムとデータ構造を TDD で学びたい。なぜなら、TypeScript は JavaScript の型付き版として広く使われており、フロントエンド・バックエンド両方のエンジニアに親しみやすいからだ。

受入条件:

  1. 全 9 章が Python 版を基に TypeScript 版として再構成されている
  2. 各章に TDD のコード例(テスト → 実装 → リファクタリング)が含まれている
  3. 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 に組み込む:

  • T1: 各章執筆後に Python 版と内容量を比較し不足を補完してからコミット
  • T2: 記事に記述した関数・クラスは同じコミットで実装(実装漏れゼロ)
  • T4: 開始前に nix develop .#node の動作確認済み

リスクと対策

リスク 影響度 対策
TypeScript の型定義で実装が複雑になる Python 版の構造を優先し、型は any から始めてリファクタリング
Jest 設定に手間取る ts-jest プリセットを利用
再帰アルゴリズム(8 王妃問題)が遅い slow テストを @jest/globalstest.skip で分離

完了条件

Definition of Done

  • 全 9 章のファイルが docs/article/node/ に存在
  • apps/node/ のテストが全てパス
  • コード例が実装と同期(記事記述 = 実装済み)
  • Python 版との内容差分チェック完了(全章)
  • mkdocs.yml の nav 更新済み
  • ローカルプレビュー確認済み

デモ項目

  1. MkDocs で TypeScript 版全 9 章を閲覧
  2. apps/node/ で Jest 実行、全テストパス
  3. 第 3 章探索アルゴリズムの TDD サイクルをウォークスルー

更新履歴

日付 更新内容 更新者
2026-04-11 初版作成 -
2026-04-11 全 9 章実装完了・進捗更新 -

関連ドキュメント