【アーキテクチャ アンチパターン】Jumble

どんな問題が起こる?

垂直設計の要素と水平設計の要素が混ざると,不安定なアーキテクチャになりやすい.

  • 垂直設計の要素とは,
    • ある機能(authentificationやauditingなど)に着目したときの横断的な要素
    • 個々のアプリ・特定のソフトウェア実装に依存する
  • 水平設計の要素とは,
    • あるレイヤ(データアクセス,UIなど)の要素であり
    • アプリ間や特定の実装で共通となる

これらは通常,混在する.混在していることにより,再利用性やロバスト性が落ちる.

  • 垂直設計要素は,ソフト依存を引き起こし,拡張と再利用を阻害する.
  • 垂直設計と水平設計を混ぜ合わせると,不安定になったり,再利用性を低下させる.

どう解決する?

まず水平設計の要素を見つけて,アーキテクチャレイヤにそれぞれ配置する.
その後,垂直設計要素をある特定の機能や性能のために使う メタデータを導入する.

水平設計要素と垂直設計要素とメタデータのバランスが適正であれば,うまく構造化された,拡張性があり,再利用できるソフトウェアになる