← C#

LESSON / ARTICLE

ソフトウェアアーキテクチャ

システムの責務・境界・依存関係を整理し、変更に強い構造を設計します。

アーキテクチャとは

ソフトウェアアーキテクチャは、システムを構成する要素と、その責務・境界・依存関係を定める設計です。特定のフレームワークを使うこと自体がアーキテクチャではありません。

責務と境界

入力の受付、業務ルール、データ保存、外部サービスとの通信を分離すると、変更の影響範囲を限定しやすくなります。各層が何を担当し、何を担当しないかを定義します。

依存関係

上位の業務ロジックが、特定のデータベース実装や外部サービスへ直接依存しすぎないようにします。インターフェースを境界として利用し、実装を交換可能にする方法があります。

トレードオフ

層や抽象化を増やすと、テストや変更はしやすくなる一方、構造が複雑になります。要件・チーム規模・運用条件に合わせ、必要な分だけ設計しましょう。