【Webバックエンド】アーキテクチャの構造について。

今回は開発している中で学んだ、Webバックエンドのアーキテクチャ構造について復習を兼ねて書きたいと思います。特に今回はsrc(source)についてです。

 

まず、ここで言うアーキテクチャとはsrcフォルダーの構造そのもののことを言います。これは各会社やプロジェクト、個人によって作り方は様々なのですが、ある程度のレイヤー構造の型は存在しています。そのため、一概にこう!とは言えませんが、自分が学んだものをメモ的な形書きたいと思います!

 

レイヤー1, adapter

adapterはフロントエンドから見た入口、つまりバックエンドの玄関口になるところです。ここに書かれたプログラムはフロントからの情報を受け取り、返す処理が書かれます。具体的には、検索ボタンが押されたら検索の結果を返せ、と命令するイメージです。このような処理は主にadapterフォルダーの直下にcntrollerと名ずけられたファイルで書かれることが多いです。

 

レイヤー2, usecase

usecaseでは、adapterでは書けなかったシステムの振る舞いを書きます。つまり、次に出てくるdomainの機能群を使ってどのような処理をadapter(controller)に返すか、の処理を描きます。具体的には、ID取得の機能使ってそれを元にデータをデータベースから引っ張ってきてそれをcontrollerに返す、といった処理を書きます。

 

レイヤー3, domain

ここでは業務知識が書かれます。つまり、ある分野の機能群をまとめるところです。具体的にはコンテンツ管理するという機能群を書くとして、その中にID取得、投稿、編集、削除の機能をセットしておく、というイメージです。

 

レイヤー4, entity

ここでは、データ定義を管理します。言ってしまえばデータそのものが入っている場所です。具体的には、domainを参考にすると、IDのデータ、投稿の中にあるタイトル、メインテキスト、画像、動画、投稿日時、などといった中身のデータを定義しておく、というイメージです。

 

レイヤー5, infrastructure

ここではバックエンドの根幹となる部分の処理を書きます。例えばMySQLなどとの交信の処理や、Firebaseなどとの認証の処理、などが挙げられます。

 

 

以上5つのレイヤー構造要素について書かせて頂きました。私自身としても、まだinfrastructureで記述されることなどがまだはっきり分かっていない部分もあるので勉強を続けていきたいと思います。ありがとうございました!

 

 

shinshi_onigoori