イテレーション 5 ふりかえり
概要
| 項目 |
内容 |
| イテレーション |
5 |
| 期間 |
Week 9-10(2 週間) |
| ゴール |
Ruby 版を Python 版から展開し、TDD で実装する |
| 実績 SP |
3 / 3 SP(達成率 100%) |
KPT
Keep(良かったこと・続けること)
- TDD サイクルの徹底: Red → Green → Refactor を 1 章ずつ実施し、137 テストが全パスした
- Python 版の知見活用: IT-1(Python 版)の実装パターンを参照しながらスムーズに展開できた
- Ruby イディオムの活用:
odd?/even?、後置 if/unless、n.times、downto、reverse、each_char 等を活用しコードが簡潔になった
- RSpec の DSL:
describe/context/it の階層構造によりテストの可読性が高まった
- ラムダによる内部関数: ヒープソートの
down_heap をラムダで表現することでネスト関数を自然に書けた
- 章ごとのコミット: 実装と記事を同一コミットで完結する規律を維持できた
Problem(課題・改善すべきこと)
for...else の代替: Python の for...else 構文が Ruby にないため、フラグ変数で代替する必要があった(可読性の低下)
- CI ワークフロー未追加: Ruby 版の
ci-ruby.yml を作成する必要がある
- Ruby の整数除算: 明示的な
// がなく、整数同士の / が自動的に整数除算になる点でテストを確認する必要があった
Try(次のイテレーションで試したいこと)
- CI ワークフロー(
ci-ruby.yml)を追加して自動テスト体制を整備する
Comparable モジュールや Enumerable モジュールの活用を検討する
- PHP 版(IT-6)では Ruby 版と同様のテンプレートを活用する
ベロシティ
| イテレーション |
計画 SP |
実績 SP |
達成率 |
| 1(Python) |
5 |
5 |
100% |
| 2(TypeScript) |
3 |
3 |
100% |
| 3(Java) |
3 |
3 |
100% |
| 4(C#) |
3 |
3 |
100% |
| 5(Ruby) |
3 |
3 |
100% |
| 合計 |
17 |
17 |
100% |
累積 SP: 17 / 61(Phase 1: 17 / 20 SP = 85%)
品質メトリクス
| メトリクス |
値 |
| テスト件数 |
137 |
| テスト通過率 |
100% |
| 作成ファイル数 |
実装 9 + spec 9 + 記事 10 = 28 |
| テストフレームワーク |
RSpec 3.13.2 |
| Ruby バージョン |
3.3.10 |
更新履歴
| 日付 |
更新内容 |
更新者 |
| 2026-04-12 |
初版作成 |
- |