2012-06-15 2 views
0

donc je commence sur projet d'entreprise qui aura plusieurs composantes:architecture d'application Rails et configuration commune

Au début ...

  1. Liste d'emploi
  2. création et la gestion du profil client
  3. Administration de l'utilisateur et accès (connexion, inscription, rôles, etc.)

plus tard ...

  1. Messaging
  2. Horaire
  3. Rapports de base

façon plus tard ...

  1. Une analyse plus approfondie et bi

Je me demande si elle fait sens pour chaque élément de balle à être son propre projet de rails, autonome et modulaire (si tel est bien le cas); ou si c'est juste mieux pour être dans la même application. Je pourrais envisager une situation où chaque module pourrait fonctionner de manière si indépendante l'un de l'autre qu'il n'aurait pas besoin du reste (sauf pour la fonctionnalité de l'utilisateur) et une autre situation où tous les modules seraient utilisés ensemble.

Il me semble que de nombreuses tâches peuvent être traitées avec un cadre plus léger comme Sinatra (et ensuite situé physiquement sous l'application rails). Il semble aussi que ce serait beaucoup de frais généraux d'avoir plusieurs applications rails en cours d'exécution sur un serveur. Mais je ne suis pas tout à fait conscient de tous les avantages et inconvénients à l'exploitation de chaque scénario.

Je sais que c'est une question générale qui est liée à beaucoup de réponses "ça dépend" (et à juste titre) je cherchais des opinions/des exemples de la façon dont vous configurez ce genre/votre type de projet dans les rails. Je suis un quasi noob alors sois gentil.

Merci d'avance!

Répondre

4

En règle générale, je considère un site Web comme une cible appropriée pour une application Rails. Chaque partie de l'application peut avoir ses propres espaces de noms au sein de l'application, de sorte que l'application a une structure interne, mais ils doivent tous être une seule application. Considérez des choses comme des sessions, où vous voulez qu'un utilisateur se connecte et utilise toutes les fonctionnalités du site que vous voulez. Vous voulez ces sessions dans une application sans qu'un utilisateur doive se connecter à différentes sections. Dire que, s'il existe des fonctionnalités complexes ou étendues qui ne font pas partie de l'architecture MVC (par exemple, parler à une API externe, extraction de données, etc.), vous pouvez compenser cela par un projet séparé et l'inclure comme une gemme dans votre application. Vous auriez toujours une application Rails principale qui inclut ces Gems.

Vous pouvez également regrouper une section de votre projet dans un moteur Rails réutilisable pouvant être chargé dans plusieurs projets. Par exemple, Devise gère la connexion et la gestion des utilisateurs. C'est un moteur Rails, regroupé en Gem, que vous incluez dans votre projet.

Un autre exemple de Meducation (un de mes sites).Je suis en train d'extraire notre système de suivi des e-mails en its own Rails engine car je pense que ses fonctionnalités se trouvent aux côtés de Meducation et n'en font pas partie intégrante. Je peux ensuite l'utiliser dans d'autres projets.

Dans votre exemple spécifique, je pense que vos exigences s'intègrent parfaitement dans une application Rails.

+0

Merci pour la réponse. L'analogie de votre site Web a été utile. Je vais maintenant faire un plongeon plus profond dans les moteurs Rails :). –

+0

Content de vous aider. N'oubliez pas de marquer la réponse comme acceptée si vous pensez qu'elle a répondu à votre question! :) – iHiD

Questions connexes