Open4

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

bamboo-housebamboo-house

Clean Architectureから見えてきた、アーキテクチャの課題と改善点。

新規事業開発において、ビジネスロジック(ビジネスルール)は安定度が低い。基本的に、ビジネスモデルが確定しPMFを達成するまでは、(大小関わらず)ピボットを繰り返すもの。つまり、初期フェーズではビジネスロジックは変化し安定度が低いと言える。

しかし、Clean Architectureなどで議論されているアーキテクチャは、Application層を中心に周辺のコンポーネントを構築しており、ビジネスロジックが変化しない前提でシステムをアーキテクトしている。

bamboo-housebamboo-house

現状のアーキテクチャ
現状のアーキテクチャ

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

現状のアーキテクチャだと、ビジネスロジックの変更はInfrastracture層以外の全てに影響してしまう。ここではPresentation層のみ。

bamboo-housebamboo-house

解決策1

  • Application層の中でも最も変更の可能性がある部分を別の層に分離する。

解決策2

  • 依存関係を逆転させる。Application層に依存している他のコンポーネントの間にインターフェースを設置して、ビジネスロジックを完全に囲う。

解決策3

  • 受け入れる。頑張ってパワー変更する。
bamboo-housebamboo-house

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