はじめに
2023年アドベントカレンダー20日目です。
昨日に引き続き、「ユーザーはトップページでブログタイトルの一覧を見ることができる」を進めていきます。
現在はRustのAPIを作成しており、本日はアーキテクチャを検討していきます
モジュラーモノリス
モジュラーモノリスとは、モノリシックな構造を持ちつつも内部でモジュールに分割されているのが特徴である、ソフトウェアアーキテクチャの一つです。
ソフトウェアアーキテクチャの一つで、簡潔にアプリケーションを表現することが可能です。
アプリケーションが大きくなる際は、マイクロサービスのようなアーキテクチャを採用すると良いと思いますが、今回のAPIではそれほど複雑になる予定は今のところないので、モジュラーモノリスを選択しました。
(作ってみたかった)
今回は図のようにブログモジュール
だけで良さそうなので、ブログモジュールを持ったAPIを作っていきます
ディレクトリ構造
ブログモジュールを持つ、RustのAPIのディレクトリ構造を考えました。
.
├── Cargo.lock
├── Cargo.toml
├── blog ・・・・ブログモジュール
| ├── src/
| └── Cargo.toml
├── db ・・・・DB
├── e2e ・・・・E2Eテスト
├── src ・・・・メインモジュール
これをベースに作っていきます
クリーンアーキテクチャ
Webと同様にクリーンアーキテクチャの思想に基づいてアプリを構築していきます
クリーンアーキテクチャについては【Day 11】で解説しています。
アーキテクチャ図
このようになりました。
明日からはついにモジュラーモノリスで、クリーンアーキテクチャに基づいてアプリの実装を進めていきます!