0

だから私はいくつかのコンポーネントを持つ会社のプロジェクトを始めています:

初めに...

  1. ジョブリスト
  2. クライアント プロファイルの作成と管理
  3. ユーザー管理とアクセス (ログイン、サインアップ、役割など)

後で...

  1. メッセージング
  2. スケジュール
  3. 基本的なレポート

ずっと後...

  1. より深い分析とバイ

各箇条書き項目が独自の Rails プロジェクトであり、自己完結型でモジュール式であることが理にかなっているのかどうか疑問に思っています (実際にそうである場合)。または、同じアプリにあることが最善の場合。各モジュールが互いに独立して動作し、残りの部分 (ユーザー機能を除く) を必要としない状況と、すべてのモジュールが一緒に使用される別の状況を想像できました。

多くのタスクは、Sinatra のような軽いフレームワークで処理できるように思えます (そして、レール アプリの下に物理的に置かれます)。また、複数の Rails アプリをサーバー上で実行すると、多くのオーバーヘッドが発生するようです。しかし、私は各シナリオを運用する上でのプラスとマイナスのすべてを完全に認識しているわけではありません。

これは一種の一般的な質問であり、多くの「場合による」種類の回答が得られることはわかっています (当然のことですが)、この種の/あなたの種類のプロジェクトをレールでどのようにセットアップするかについての意見/例を探していました。準初心者なのでお手柔らかに。

前もって感謝します!

4

1 に答える 1

4

一般的に言えば、Web サイトは Rails アプリの適切なターゲットであると考えています。アプリの各部分は、アプリ内に独自の名前空間を持つことができるため、アプリは内部的に何らかの構造を持っていますが、それらはすべて 1 つのアプリケーションである必要があります。ユーザーがログインして、必要なサイトの機能を使用できるようにするセッションなどを検討してください。ユーザーが別のセクションにログインしなくても、これらのセッションを 1 つのアプリケーションにまとめることができます。

つまり、MVC アーキテクチャの一部ではない複雑な機能や拡張機能 (外部 API との通信、データ マイニングなど) がある場合は、それを別のプロジェクトにオフセットし、Gem として含めることができます。あなたの申請。これらの Gem を含むメインの Rails アプリケーションが 1 つ残っています。

また、プロジェクトのセクションを、複数のプロジェクトにロードできる再利用可能な Rails エンジンにバンドルすることもできます。たとえば、Deviseはユーザーのログインと管理を処理します。プロジェクトに含めるのは、Gem としてバンドルされた Rails エンジンです。

Meducationからの別の例(私のサイトの 1 つ)。私は、メール追跡システムを独自の Rails エンジンに抽出する過程にあり、その機能は Meducation と並んでおり、Rails の中核部分ではないと感じています。その後、他のプロジェクトでも使用できます。

あなたの特定の例では、あなたの要件は1つのRailsアプリケーションにうまく適合すると思います。

于 2012-06-15T22:49:08.117 に答える