Railsでアプリを作っていると、最初の立ち上がりは速いものの、コードが多くなってくると結構散らかってきますよね。そんな中、5 ARCHIRECTURE ANTI-PATTERNS AND SOLUTIONS FOR LARGE RAILS APPSという記事を見つけたので、ご紹介します。 1. 複数の責務を持つサービスクラスがある 業務別の処理をサービスクラスという形で分割したときの話ですね。ActiveRecordのクラスに直接仕事をさせるのではなく、プレーンなクラスに業務処理をまとめて、そこからだけActiveRecordのクラスのオブジェクトにアクセスするという考え方です。 で、業務別の処理をサービスクラスにまとめたのは良いんだけど、「これもこの業務だよね」という感じで、どんどんサービスクラスに処理を追加していくと、単一責任の原則に違反してしまうし、混沌とするので、良くないよねと。
![大規模Rails開発を蝕む5つのアンチパターン | mah365](https://cdn-ak-scissors.b.st-hatena.com/image/square/b33fd681ccfd61410693ce4199b9ab6d432566f1/height=288;version=1;width=512/https%3A%2F%2Fblog.mah-lab.com%2Fwp-content%2Fuploads%2F2013%2F12%2F20131226.jpg)