# legacy-orders — AI駆動開発ハンズオン教材

小さな「注文管理システム」です。**意図的に古いスタイル**(Java 8時代の書き方・ドキュメント不足・テスト不足・長いメソッド)で書かれており、AIコーディングエージェント(Claude Code等)を使った

- 現行仕様の読解・仕様書化
- テストの生成と検証
- リファクタリング/近代化
- 別言語・別構成への移行検証

の練習台として設計されています。教材サイト: https://ai-driven-handson.pages.dev

## 動かし方(JDK 17以上が必要)

### Mavenなしでテスト実行(推奨・付属のJUnitランチャーを使用)

```
run-tests.cmd        (Windows)
sh run-tests.sh      (macOS / Linux)
```

### Mavenを使う場合

```
mvn test
```

## 構成

```
src/main/java/com/example/orders/
├── Main.java              # 動作デモ
├── Order.java             # 注文(あえてraw型のListなど)
├── OrderLine.java         # 注文明細
├── Product.java           # 商品
├── ProductRepository.java # インメモリの商品ストア
├── OrderValidator.java    # 注文バリデーション
├── PriceCalculator.java   # 金額計算(税・割引・送料のルールが複雑)
├── OrderService.java      # 注文の作成・検索・キャンセル
└── ReportGenerator.java   # 月次レポート(長いメソッド)
src/test/java/com/example/orders/
└── OrderServiceTest.java  # 既存テストの見本(規約サンプル)
```

## ライセンス

MIT License — 学習・研修目的で自由に利用・改変・再配布してください。
