mybook
13

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

クリーンアーキテクチャ・ヘキサゴナル・CQRS など、現代の主要アーキテクチャを俯瞰する

1
プロローグ — アーキテクチャを選ぶということ

なぜソフトウェアアーキテクチャが重要なのか。カオリが新規プロジェクトで直面したアーキテクチャ選定の現実を通じて、設計判断の本質に迫る。

2
モノリシックアーキテクチャ — 一枚岩の価値

Railsモノリスの強みと限界を理解する。スタートアップがモノリスから始めるべき理由と、スケールの壁を乗り越える戦略。

3
レイヤードアーキテクチャ — 層で分ける

プレゼンテーション・ビジネスロジック・データアクセスを層に分離する。Railsでの実装と、層の違反が引き起こす問題を学ぶ。

4
クリーンアーキテクチャ — 依存の方向を制御する

Uncle Bobの同心円モデルを理解し、ドメインコードを外部依存から完全に解放する。RailsでのUseCase実装とDependency Inversion。

5
ヘキサゴナルアーキテクチャ — ポートとアダプター

外部依存をポートとアダプターで分離する。Railsでの実装パターンと、テスタビリティの劇的な向上を体験する。

6
オニオンアーキテクチャ — ドメインを中心に

Jeffrey Palermoが提唱したオニオンアーキテクチャ。クリーンとヘキサゴナルとの違い、DDDとの親和性、ドメインモデル中心の設計哲学。

7
CQRS — コマンドとクエリの分離

読み書きの非対称性を活かすCQRSパターン。Railsでのコマンド/クエリ分離実装、AWSでの読み書きスケール戦略を学ぶ。

8
イベントソーシング — 状態ではなく事実を記録する

イベントストアに全ての変更履歴を保存し、任意の時点の状態を再現する。Railsでの実装とAWSでの構成、CQRS連携を学ぶ。

9
サービス指向アーキテクチャ — SOAの教訓

ESBとSOAの時代から学ぶ。マイクロサービスとの違い、分散システムの基本原則、Railsアプリのサービス分割パターン。

10
サーバーレスアーキテクチャ — 関数で考える

AWS Lambda・Step Functions・API Gatewayでサーバーレスシステムを構築する。コールドスタート、冪等性、分散トレーシングの実践。

11
イベント駆動アーキテクチャ — リアクティブなシステム

EventBridge・SNS・SQSで疎結合なシステムを構築する。Railsでのイベント発行、コンシューマー実装、デッドレターキューによる障害対策。

12
アーキテクチャの比較と選定 — トレードオフを見極める

全アーキテクチャパターンを品質特性・チーム規模・ドメイン複雑さで比較する。実践的な選定フレームワークとADR(アーキテクチャ決定記録)の書き方。

13
エピローグ — アーキテクチャは進化する

段階的な移行戦略、技術的負債の管理、アーキテクチャの継続的改善。カオリのプロジェクトが1年後どう進化したかと、次のアーキテクトへのメッセージ。