Question

Je suis programmée dans des rails pendant environ 7 mois maintenant. Principalement une application pour aministrer une base de données, vous connaissez, nettoyer, mettre à jour, supprimer, trouver des entrées orphelinées, etc.

J'ai une API qui parle à nos programmes de bureau écrits dans PHP. Nous voulons maintenant que nous souhaitiions tout déplacer à Ruby. Cette API doit être un éclair rapide et n'aura aucune vue de vue ni de pages HTML, elle ne communiquera que avec nos applications via JSON, d'envoi et de réception de données que les applications afficheront et fonctionnent ensuite.

Donc, la question de base est, devrais-je apprendre Sinatra et Padrino (avec ActionCord) et construire l'API avec eux ou le faire dans des rails?

Si j'utilise des rails, je pourrais conserver beaucoup de code que j'ai ou même utiliser le code existant car toutes les tables sont identiques (la base de données est identique) et il suffit d'écrire plus de méthodes pour l'API.

L'inconvénient que je vois à ceci est double:

  1. Cela signifie que le code est plus difficile à gérer et à lire car nous avons maintenant le bit API et tout le bit de maintenance.
  2. Cela signifierait que la même application Ruby fait le double travail, de sorte que l'API ne serait pas aussi rapide que si elle fonctionnait dans une autre application Ruby séparée.
  3. Déjà déjà, l'application Rails n'est pas très rapide, mais je soupçonne que cela a plus à voir avec notre solution d'hébergement que les rails elles-mêmes.

    L'apprentissage Sinatra et Padrino pourrait être plus de travail, mais conduirait à un code de nettoyage et une application rubis séparée pour l'API et une autre pour la maintenance qui sonne bien.

    Mais je ne sais rien à propos de Sinatra et Padrino, c'est l'empreinte et la vitesse vraiment cela mieux que les rails?

    J'apprécierais grandement les opinions de personnes qui ont effectivement utilisé les rails et Sinatra avec Padrino à ce sujet.

    acclamations.

Était-ce utile?

La solution

Sinatra et Padrino ne sont pas automatiquement plus vite que des rails. Ils sont juste plus petits que des rails (et fournissent au développeur avec une boîte à outils plus petite et plus focalisée). La vitesse de l'application dépend principalement de votre code (et de votre algorithme). Il en va de même pour l'élégance, la maintenabilité et d'autres aspects.

Si vous avez déjà un bon code maintenu qui fonctionne sur des rails, vous devriez simplement l'améliorer. Rendez-le plus rapidement avec une bonne solution d'hébergement / de mise en cache et conservez-le élégant et maintenu avec refactoring.

De nos jours, les rails et Sinatra offrent un très bon soutien pour le développement de webservices reposants et, plus généralement, pour le développement des API sans UI. Les rails sont plus grands et prend plus de temps à apprivoiser, mais heureusement, vous n'avez pas à étudier et à utiliser tout ce Behemot pour faire effectuer votre travail. Une application exécutée sur des rails peut être aussi rapide et élégante que celle-ci sur Sinatra, car le sous-ensemble Rails réellement utilisé pour gérer les demandes de repos est aussi petit et élégant que l'ensemble de la structure Sinatra. Par conséquent, la vitesse des applications dépend principalement de votre code et de vos choix d'hébergement / de mise en cache.

De l'autre côté, vous devez apprendre Sinatra et Padrino dans tous les cas. Ces cadres sont deux des logiciels les plus élégants et fascinants que j'ai jamais vus. Ils méritent absolument votre attention. Gardez simplement à l'esprit que Sinatra, utilisé seul, ne suffit normalement pas pour quelque chose de plus complexe qu'une API moins reposante moins utile. Très probablement une application Web réelle et pleine soufflée nécessitera Padrino.

Autres conseils

Si vous avez déjà une application Rails existante, il pourrait être plus facile de le faire passer à Rails-API .C'est fondamentalement juste des rails mais dépouillé de tous les composants utilisés pour faire de l'UIS.

Je ne l'ai pas personnellement utilisé mais je l'évaluais pour un projet il y a quelques mois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top