第16章 独立性

優れたアーキテクチャは以下のことをサポートする

レイヤの切り離し

システムの水平レイヤーごとに分離される
レイヤー例: UI,アプリケーション特有のビジネスルール,アプリケーションに依存しないビジネスルール,DB

ユースケースの分離

ユースケースは、システムの水平レイヤーを薄く垂直に分離したもの
システムを水平レイヤーに分離するとき、同時にそれらを薄く垂直に分離すべき

切り離し方式

ユースケースの切り離しは運用にも適応できる
運用で活用するには、適切な方式が必要になる
コンポーネントが別のサーバーで実行するには、何かの通信手段でやり取りをさせるしかない
このようなコンポーネントを「サービス」や「マイクロサービス」と呼んでいる

重複

重複したコードを削除・排除することになる
しかし一見重複していると見ても、それは偽物の重複もしくは、偶然の重複になっている場合ある
この場合後から気づいても分離するのが大変

切り離し方式

どのレベルで切りなすのか
以下のレベルで切り離しが可能

どのレベルで切り離すはかは、プロジェクトの初期段階ではわからない
プロジェクトが進んでいくとともに変わっていく可能性もある

感想

重複の項目でこれを思い出した

安易にユーザーだと思って共有すると痛い目を見るよという

https://twitter.com/MinoDriven/status/1380773721032433674