第15章 アーキテクチャとは

ソフトウェアシステムのアーキテクチャとは、それを構築した人がシステムに与えた「形状」
その形状を生み出すためには、システムをコンポーネントに分割し、コンポーネントをうまく配置し、コンポーネントが相互に通信できるようにする必要がある

アーキテクチャの形状の目的とは、そこに含まれるソフトウェアの開発・デプロイ・運用・保守といったシステムのライフサイクルを容易にすること
それらを容易にする戦略は、できるだけ長い期間できるだけ多くの選択肢を残すことである

選択肢を多く残すには重要ではない詳細な部分を残すということ
詳細は、人間・その他のシステム・プログラマが方針についてやり取りするのに必要だが、振る舞いに影響を与えるものではない
例えば、IOデバイス・データーベース・ウェブシステム・サーバー・フレームワーク

感想

詳細な部分を後に残せばよかったのか
前に一からシステム構築したときは、最初にプラットフォームを決めて、フレームワークを決めて、DB設計をしてとやっていた
しかし、あとあともっとこうした方がよいとか、この機能があった方が良いみたいな話になって結局修正や拡張が大変にになった(世にリリースする前の話)
これがリリースするまでにいくともっと大変そうだな