05. Sandboxフォルダ
Sandbox/
(またはsandbox/
)フォルダは、プロジェクトに関連する実験的なコードや、アイデアの試作(プロトタイピング)を行うための、公式な「砂場」です。
Sandboxのルール
Sandbox/
フォルダ内のコードは、本番環境の品質基準を満たす必要はありません。
- コンパイルが通らなくても構いません。
- テストコードがなくても構いません。
- コーディング規約に厳密に従っていなくても構いません。
このフォルダは、失敗を恐れずに、新しいライブラリ、アルゴリズム、APIの設計などを気軽に試すことを目的としています。
Sandboxフォルダの主な利用シーン
- 新技術の検証 (PoC - Proof of Concept):
- 新しいライブラリやフレームワークを導入する前に、その使い勝手やパフォーマンスを検証するための簡単なコードを記述する。
- パフォーマンス比較とベンチマーク:
- 複数の異なるアルゴリズムや実装方法を試し、どちらが高速かをベンチマークするためのコードを置く。
BenchmarkDotNet
のようなツールを使い、特定の機能のパフォーマンスを測定する。- バージョンごとのパフォーマンス追跡: ベンチマークの実行結果をリポジトリ内の
BenchmarkResults/
のような専用フォルダに保存・コミットすることで、過去のバージョンとのパフォーマンス比較が可能になります。これは、意図しない性能低下(リグレッション)を検出するのに非常に有効です。
- API設計の試作:
- 新しいAPIのインターフェースを実際に使ってみて、その使いやすさ(APIエルゴノミクス)を確認するための、ダミーの呼び出しコードを作成する。
- 再現コードの作成:
- 特定のバグを再現するためだけの、最小限のコードを隔離された環境で作成する。
- 学習と実験:
- プロジェクトで使われている技術要素について、個人の理解を深めるための学習用コードを記述する。
構成例
通常、Sandbox/
フォルダ直下には、実験したいテーマごとにソリューションやプロジェクトを作成します。
Sandbox/
├── Sandbox.sln
│
├── Proto.NewFeatureApi/ # 新機能APIのプロトタイピング用プロジェクト
│ ├── Program.cs
│ └── Proto.NewFeatureApi.csproj
│
└── Bench.AlgorithmCompare/ # アルゴリズムのベンチマーク用プロジェクト
├── Program.cs
└── Bench.AlgorithmCompare.csproj
本番コードへのマージは禁止
Sandbox/
フォルダ内のコードを、直接Src/
フォルダにマージすることは原則として禁止です。
Sandboxでの実験が成功し、その成果を本番コードに反映させたい場合は、必ずSrc/
フォルダ内に、最初からコーディング規約やテスト要件を満たした、新しいコードとして書き直してください。