MF KESSAIでバックエンドのエンジニアをやっている@garsueです。 MF KESSAIではサービス開発初期からRDBへアクセスする際のO/R MapperとしてGORMを採用しています。 今回はMF KESSAIのバックエンドでGORMをどのように活用しているか簡単に紹介しようと思います。 当初の課題 弊社のシステムは基本的にドメイン駆動設計に則っているので、データの永続化と取得を行うリポジトリが存在します。 その具体的な実装の中でGORMを使っています。 当初の実装では、各リポジトリのメソッド内でクエリの組み立てを行っていたため、少しでも条件が異なれば別のリポジトリメソッドとして定義するような作りになっていました。 その結果、どんどんリポジトリが膨らんでいき、再利用性が低く見通しの悪いコードになるという問題が出てきました。 この問題はよくあるらしく、2018年の春のGo Con