Open4
新規事業開発におけるアプリケーションのアーキテクチャの考察

Clean Architectureから見えてきた、アーキテクチャの課題と改善点。
新規事業開発において、ビジネスロジック(ビジネスルール)は安定度が低い。基本的に、ビジネスモデルが確定しPMFを達成するまでは、(大小関わらず)ピボットを繰り返すもの。つまり、初期フェーズではビジネスロジックは変化し安定度が低いと言える。
しかし、Clean Architectureなどで議論されているアーキテクチャは、Application層を中心に周辺のコンポーネントを構築しており、ビジネスロジックが変化しない前提でシステムをアーキテクトしている。

現状のアーキテクチャ
今回のアプリケーションも小さなピボット要求(ビジネスロジックの変更)が多くあった。しかし、このアーキテクチャではビジネスロジックの変更は難しい。もっとビジネスロジックの変更容易性が高い(安定度が低い)アーキテクチャはないのだろうか?
現状のアーキテクチャだと、ビジネスロジックの変更はInfrastracture層以外の全てに影響してしまう。ここではPresentation層のみ。

解決策1
- Application層の中でも最も変更の可能性がある部分を別の層に分離する。
解決策2
- 依存関係を逆転させる。Application層に依存している他のコンポーネントの間にインターフェースを設置して、ビジネスロジックを完全に囲う。
解決策3
- 受け入れる。頑張ってパワー変更する。

変更ではなく拡張で対応するのがセオリーらしい。拡張性を原点にもう一度考えてみる。