はじめに こんにちは。リンクウェルクリニックDX支援システムチームの山本です。 皆さんが普段開発しているサービスの1stコミットはいつでしょうか?私が主に担当しているサービスは2018年から開発されており、今まで経験したRailsプロジェクトの中でも比較的大規模のものとなっております。 長期間開発が続けられているRailsのサービスでよくある問題として、ファットモデル・ファットコントローラーが挙げられます。その名の通り1つのファイルのサイズや役割が大きくなってしまう問題です。 我々のサービスでは診察の「予約」を担当するReservationモデルの肥大に悩まされています。この問題に対し、packs-rails と packwerk というライブラリを利用して解決する方法を検証しました。今回はこのライブラリを利用し、モデルを適切に分割し、ドメインの境界を容易に検知する仕組みをご紹介します。