「大規模な」Rails アプリを構築するためのベスト プラクティス
大規模な Ruby on Rails アプリのモジュール化について簡単な質問があります。
設定:
人々に関する情報を保存するコアアプリを構築しています。また、その情報を非常に異なる方法で使用する「モジュール」もいくつかあります。(たとえば、人々に関する情報を表示したり、人々の間のつながりや共通点を見つけたりすることができます)。
質問:
このアプリを効率的にモジュール化するにはどうすればよいですか?
考えられる答え:
モジュールはモデルとビューをコア アプリ (および相互) と共有するため、それらを 1 つのアプリに結合することは理にかなっています。ただし、アプリが成長するにつれて、これは明らかに問題につながります。これは、コントローラーとモデルの名前空間「適度に大きなRailsアプリケーションでコントローラーを整理する方法」またはエンジンを使用する「Railsアプリケーションのモジュール化」のいずれかを示唆しています。
モジュールは活発に開発されているため、Rails ジェネレーターを使用すると非常に便利です。また、エンジンは Rails の観点からは完全にサポートされていますが、ジェネレーターのサポートとデータベースの移行の欠如に関しては、いまだにハッキリしているように見えます。エンジンの開発に成功した経験のある人はいますか? 動作中のアプリがあり、それをプラグインに移植したい (つまり、コードをコピーして貼り付ける) 場合、エンジンは優れたソリューションのように思えますが、積極的に開発している場合 (モデルの変更など) は難しいでしょう。
私が最後に見たのは、複数のアプリと 1 つのデータベースを使用していることです。この方法は、移行やモデルをまっすぐに保つなどの王室の苦痛のように思えますが、それについても考えてみようと思いました。