Skip to content

イテレーション 8 ふりかえり

概要

項目 内容
イテレーション 8
対象言語 C# / F#
期間 Week 15-16(2 週間)
計画 SP 13
実績 SP 13
達成率 100%

主要指標

メトリクス
テスト数 67(C# 38 + F# 29)
C# ソースファイル 11 ファイル
F# ソースファイル 2 ファイル
C# 記事 12 章 + index
F# 記事 12 章 + index
コミット数
Cake ビルド 全ターゲット成功

KPT 分析

Keep(継続すること)

  1. .gitignore ファースト戦略の成功
  2. IT7 の学びを活かし、apps/dotnet/.gitignore を最初に作成
  3. bin/obj/.vs/ の誤コミットを完全に防止できた

  4. Nix 環境の安定利用

  5. nix develop .#dotnet で .NET SDK 8.0.416 を一貫して使用
  6. 環境差異による問題がゼロだった

  7. 並列エージェントによる記事生成の効率化

  8. C# 12 章と F# 12 章を並列エージェントで同時生成
  9. 2 言語 24 章分の記事を短時間で完成させた

  10. Cake ビルドツールの採用

  11. C# DSL で記述できるため .NET エコシステムとの親和性が高い
  12. Clean → Build → Test → Check のタスクチェーンが明確

  13. C#/F# 記事の完全分離

  14. ユーザーの要望に基づき、docs/article/csharp/docs/article/fsharp/ に分離
  15. 各言語 12 章の独立した記事として管理しやすくなった

Problem(問題点)

  1. Codex サンドボックスの書き込み制限
  2. Codex MCP サーバーのサンドボックスモードでファイル書き込みが制限された
  3. danger-full-access を指定しても read-only で動作することがあった
  4. 直接実装に切り替えることで対応したが、Codex 分業体制が使えなかった

  5. IFizzBuzzCommand の Execute メソッド重複(CS0111)

  6. Execute(int number)Execute(int count) が同じパラメータ型で衝突
  7. C# のメソッドオーバーロードではパラメータ名だけでは区別できない
  8. ExecuteValue / ExecuteList にリネームして解決

  9. F# テストの完全修飾名の必要性

  10. open FizzBuzzFSharp.Domain 後に Domain.generate で FS0039 エラー
  11. FizzBuzzFSharp.Domain.generate と完全修飾名を使用する必要があった

  12. docs/article/index.md テーブルの列数不整合

  13. C#/F# 分離時にヘッダーとデータ行の列数が一致しなかった
  14. ファイル全体の書き直しで対応

Try(次に試すこと)

  1. Codex 代替策の事前準備
  2. Codex のサンドボックス制限が発生した場合の代替フローを事前に定義
  3. 直接実装モードへの切り替え判断を早期に行う

  4. C# インターフェース設計のレビュー強化

  5. メソッドシグネチャの衝突は設計段階で検出すべき
  6. Command パターンでは ExecuteValue / ExecuteList のように意図を明示的にする

  7. F# モジュール参照のベストプラクティス

  8. open ディレクティブ使用後の名前解決ルールを記事内で解説する
  9. 完全修飾名 vs 短縮名の使い分けガイドラインを設ける

  10. テーブル更新時のバリデーション

  11. Markdown テーブルの列数整合性を変更前にチェックする
  12. --lint スキルの活用を徹底する

次のイテレーションへの引き継ぎ

IT9(Clojure)への申し送り

  1. .gitignore を最初に作成する(target/, .lein-*, .nrepl-port の除外)
  2. Nix 環境(nix develop .#clojure)を必ず使用する
  3. Codex が利用不可の場合は直接実装に早期切り替え
  4. LISP 方言固有の概念(S 式、マクロ、永続データ構造)の記事説明に注力
  5. GitHub Issue #9 の同期を忘れない
  6. Phase 3 の最初のイテレーションとしてテンプレートを JVM 言語向けに調整

Phase 2 完了の確認

  • IT5(Go): ✅ 完了(10 SP)
  • IT6(PHP): ✅ 完了(10 SP)
  • IT7(Rust): ✅ 完了(10 SP)
  • IT8(C#/F#): ✅ 完了(13 SP)
  • Phase 2 合計: 43/43 SP(100%)

更新履歴

日付 更新内容 更新者
2026-03-02 初版作成 AI