ソフトウェアシステムがどれほど大きくなっても、そこには必ず境界があります。この境界は、システムの内側にあるものと外側にあるものを分けます。大規模なシステムを複数のコンポーネントに分割することは大きなメリットをもたらしますが、その分割の仕方を決めるには、実際の技術と理解が必要です。
こうした場面では、経験が最良の教師となることが多いものです。とはいえ、開発者がより良い選択をするための戦略も存在します。それらがなぜ重要なのかを理解するには、境界が実際に何をするのかを考えることが役立ちます。優れたソフトウェアの境界は、アプリケーションの責務、ルール、そしてそのルールを適用するために必要な詳細を一つにまとめます。境界の外側にあるシステムの部分は、明確な経路を通じてのみ内側のものと相互作用できます。
つまり、境界を設定する技術とは、どの責務を一緒にまとめるべきか、そしてそれらの間にどの依存関係が存在すべきかを判断することを意味します。こうした判断を適切に行うことが、システムがどれだけ理解しやすく、変更しやすく、長期にわたって保守しやすいかを形作るのです。
この記事では、開発者が自分の担当するシステムについて適切な境界の判断を下すための、主要な戦略を取り上げます。
出典: ByteByteGo · 要約:HeadlinesBriefing