アーキテクチャとは
ソフトウェアアーキテクチャは、システムを構成する要素と、その責務・境界・依存関係を定める設計です。特定のフレームワークを使うこと自体がアーキテクチャではありません。
責務と境界
入力の受付、業務ルール、データ保存、外部サービスとの通信を分離すると、変更の影響範囲を限定しやすくなります。各層が何を担当し、何を担当しないかを定義します。
依存関係
上位の業務ロジックが、特定のデータベース実装や外部サービスへ直接依存しすぎないようにします。インターフェースを境界として利用し、実装を交換可能にする方法があります。
トレードオフ
層や抽象化を増やすと、テストや変更はしやすくなる一方、構造が複雑になります。要件・チーム規模・運用条件に合わせ、必要な分だけ設計しましょう。