マニフェスト駆動開発
マニフェスト駆動開発(Manifest-Driven Development)は、プロジェクトの宣言的な設定ファイル(マニフェスト)を中心に開発プロセスを構築する手法。コードの構成、依存関係、ビルド設定などを一元管理することで、プロジェクトの一貫性と再現性を高め、チーム全体の生産性向上を図るアプローチについて解説する。
背景メモ
- Web開発で長年使われてきた「Manifestファイル」(アプリの設定や依存関係を宣言的に記述するファイル、例:AndroidManifest.xmlやpackage.json)の考え方を、ソフトウェア設計全体に拡張しようという手法。
- 従来の「設定より規約」や「アノテーションベース」の開発と異なり、ビルド前の段階でマニフェストにすべての構造・依存関係・振る舞いを明示。コードはそのマニフェストを解釈する実行エンジンに徹する。
- 著者はSpacedockという組織に所属し、Docker ComposeやKubernetesマニフェストのような宣言的構成に着想を得ている。自動生成・静的解析・マルチターゲット出力との親和性が高い。
- 背景として、設定肥大化(Environment Hell)や暗黙の依存関係に悩む大規模プロジェクトが増えている。MDDは「暗黙知をコードではなくマニフェストに書く」ことで設計の可視性を高める提案。