コンテンツにスキップ
検索語を入力してください

    アプリケーション配線

    ユースケースクラスがオーケストレーション(読み込み → 認可 → 遷移 → 永続化)を所有し、ルートやハンドラは薄い入口に留める。具象のJDBCクライアントやHTTPクライアントをドメインに漏らすと、テストが実インフラに依存し、変更の影響範囲も読み取れなくなる。

    失敗の層分けは エラーハンドリング、遷移の形は 状態遷移 と整合させる。

    小さなクラスとしてユースケースをモデル化する

    Section titled “小さなクラスとしてユースケースをモデル化する”

    コンストラクタ引数またはreader / environmentレイヤー経由でportを注入する。リポジトリやクライアントのstatic singletonは避ける。

    final class AssignDriver[F[_]: Monad](
    requests: TaxiRequestRepository[F],
    drivers: DriverRepository[F]
    )

    具象adapterの配線はアプリケーションのbootstrapモジュール(MainBootstrap、またはZIO App レイヤー)だけで行う。ドメインとapplicationパッケージはtraitに依存し、JDBC / HTTPドライバには依存しない。

    ユースケースが状態を読み込み、純粋な遷移を呼び、結果を永続化する。遷移メソッドの中にSQLやJSONパースを埋め込まない。

    HTTP / gRPC / CLI adapterが UseCaseError をレスポンスコードとクライアント向けメッセージにマップする。リポジトリ例外の文字列をデフォルトで漏らさない。

    エラーハンドリング状態遷移 を参照する。