クリーンアーキテクチャ
https://scrapbox.io/files/69280a8566b85f5cee32584f.jpg
登場人物の解説
エンティティ(Entities)
アプリケーションにおけるビジネスルールをカプセル化したオブジェクト
例:1ユーザーにつき5投稿まで
ユースケース(Use Cases)
アプリケーションが何をできるか表現するオブジェクト
例:ユーザー登録をする、記事を投稿する
ゲートウェイ(Gateways)
リポジトリとも言われる
データの永続化を担うオブジェクト
例:投稿を保存する、投稿を見つける
コントローラ(Controllers)
外部(ユーザー)からの入力をユースケースが要求する形式へ変換して伝えるのが役割
例:ユーザーが入力した文字列型の日付を日付型に変換する
プレゼンター(Presenters)
外部(ユーザー)へ表示するデータの形式に変換して伝えるのが役割