Skip to content

[Architecture]featuresディレクトリ

Yo Higashida edited this page Aug 3, 2023 · 1 revision

要するにドメインモデルをベースにディレクトリを切り分ける方法です。 bulletproof-reactのディレクトリ構成を参考にしています。

ドメインとは

ドメインに関してはこちらを参考に↓

(厳密に言うと違うけど、ざっくりいうとデータベースのテーブル単位で分けられたオブジェクトくらいの認識で良いです。)

ディレクトリ構成

src/
├─ features/
│  ├─ domain name/
│  │  ├─ api/
│  │  ├─ components/
│  │  ├─ domain/
│  │  ├─ schema/
│  │  ├─ validation/
│  │  ├─ index.ts

api

ドメインに紐づくapi通信を行うモジュールを格納する

validation

バリデーションロジックを書く

schema

schema(APIからのレスポンス)を定義する。 基本的にはzodiosで自動生成する部分。

components

ドメインに紐づくコンポーネント。 schemaをpropsに受け取るUIを格納する。

domain

schemaの値を引数に受け取り任意の処理をするドメインロジックを書く場所 例:UserのfirstNameとlastNameがAPIのレスポンスから返ってきてそれをfullNameとして出力したい

index.ts

各featureのエントリポイント。 feature下のモジュールをまとめてexportする。(Barrelパターンと呼ばれれてるやつ→参考)