バックエンド: 依存性注入
今回バックエンドの構築にクリーンアーキテクチャっぽいものを導入してみました。 たぶんクリーンアーキテクチャと言うと怒られる (※) ので、依存性注入 (dependency injection) をやったよ!と言う程度に言っておきます。
依存性注入とは
依存性注入 (dependency injection)とは、部品を交換可能にして、コードを整理しやすくする設計方法です。 例えば、車の部品を交換するように、データベースの種類を簡単に変えることができるようになります。
クリーンアーキテクチャとは
クリーンアーキテクチャは、ソフトウェアを「中心に大事なルールや動き、外側に道具や技術」という形で整理する考え方です。これにより、仕組みが分かりやすくなり、修正や新しい機能の追加がしやすくなります。
自分はこういうイメージで使いました。
ディレクトリ構成
画像生成サービス (api.trpfrog.net/icongen) は次のようなディレクトリ構成になっています。
クリーンアーキテクチャを意識しています。
コントローラ層
コントローラ層とは、ユーザーからのリクエストを受け取り、処理を振り分ける場所です。 ここでは Web フレームワークである Hono を使っています。
例えば src/controller には次のような実装が入っています。
ここは実際のルーティングをする層です。 ここにはロジックを書かず、ユースケースを呼び出すだけにしています。 リクエストからデータを取り出して、ユースケースに渡しています。
