この記事は SMat Advent Calendar 2024 の12月11日分の記事です。 こんにちは。エスマットエンジニアの金尾です。 皆さんはリポジトリパターンでつらい思いをしたことはありますか? 僕はあります。 本記事はそもそもリポジトリパターンとはどういう実装パターンなのかについて検討した内容をまとめたものです。なお文中に出てくるコードはGo言語を前提としています。 リポジトリパターンとは リポジトリパターンとは、ドメインモデルのデータ処理をアプリケーションの他の部分から分離する実装パターンです。 対応するドメインモデルのCRUDや集計のメソッドを提供し、データストレージに関する処理をカプセル化します。 各クライアントは、データストレージのマッピング処理を考えずにUserモデルを利用できる なぜリポジトリパターンを使うのか リポジトリパターンを使うことによって以下のメリットが期待