Node.js & Express.js vs. Ruby on Rails

Heute habe ich mir überlegt, ob ich Express JS und Node JS als Backend verwenden und nicht Ruby on Rails. Ich habe mit einigen Unternehmen gesprochen, die Ruby on Rails verwendet haben und seitdem für ihr Backend auf Node und Express umgestellt haben. Da mir beigebracht wurde, Ruby on Rails als Backend für React-Apps zu verwenden, dachte ich, ich würde einige Vor- und Nachteile des Erstellens einer Webanwendung mit einem Node / Express-JS-Backend untersuchen.

Daher wollte ich zunächst die Frage beantworten: „Was ist Express?“ Express ist ein minimalistisches Webframework für Node.js, mit dem Webanwendungen ausgeführt werden können oder das ähnlich wie Rails als API fungiert. Eine Sache, die ich fast sofort beim Besuch der Express JS-Website bemerkte, war, dass es wunderbare Anleitungen und einen ganzen Abschnitt als API-Referenz gibt. Die Dokumente sind sehr hilfreich, um einen neuen Benutzer durch die Einrichtung seiner ersten Express-Webanwendung zu führen.

Zum jetzigen Zeitpunkt muss ich sagen, dass ich mich für Rails interessiere, weil ich so viel Zeit damit verbracht habe, mit Ruby und Rails in der vollen Entwicklung zu arbeiten und es als Backend für eine Anwendung mit einem React JS-Frontend zu verwenden. Es war sehr aufschlussreich, die Vor- und Nachteile der Verwendung der beiden verschiedenen Frameworks zu untersuchen.

PROS: Verwenden eines Ruby on Rails als Backend

  • Der Code ist ausgereift und besteht schon seit langer Zeit aus einer großen Entwickler-Community und hervorragenden Dokumenten
  • Schnelle Entwicklung, sehr schnelles Bauen mit all den Generatoren, die mit Schienen geliefert werden (ich nenne es gerne Rails Magic)
  • Lesbarkeit - Rails ist leicht lesbar. Theoretisch können Sie jedes Rails-Projekt öffnen und sich leicht darin zurechtfinden, da alle Projekte auf die gleiche Weise organisiert sind

CONS: Verwenden von Ruby on Rails als Backend

  • Es ist langsamer / schwerer - Ruby on Rails ist schwerer und benötigt mehr Ressourcen, was bei der Erstellung größerer Projekte zu langsameren Reaktionszeiten führen kann
  • Skalierbarkeitsprobleme - Wie oben bereits erwähnt, ist die Skalierung mit schwereren Schienen schwieriger. Daher ist dies möglicherweise nicht die beste Wahl für größere und interaktive Websites
  • Zu viel Magie - manchmal gibt es zu viel Magie und obwohl die Generatoren großartig sind, können Probleme schwieriger zu beheben sein, wenn sie auftreten

PROS: Verwenden von Express / Node JS als Backend

  • Schneller - Express ist sehr leicht und eignet sich hervorragend zum Erstellen größerer Projekte, die skaliert werden müssen. AUCH schnelleres Laden bedeutet bessere Google-Suchergebnisse
  • Geschrieben, um asynchrone Anfragen zu bearbeiten - Ich kann Ihnen aus erster Hand sagen, dass Rails viel schwieriger zu konfigurieren ist, wenn es um asynchrone Anfragen geht (das Erstellen einer Chat-Funktion mit Rails war nicht einfach).

CONS: Verwenden von Express / Node JS als Backend

  • Lesbarkeit - Rails-Code ist leicht zu lesen, aber was ich gehört habe, ist es schwieriger, mit Express-Code herauszufinden, wo Dinge passieren, die schwierig sein können, wenn Sie sich nur an einem Express-basierten Projekt beteiligen
  • Mehr Code - Express / Node erfordern mehr Codezeilen als dieselbe Aktion in Rails

Ich hoffe, meine Liste der Vor- und Nachteile war hilfreich bei der Auswahl des Backends, mit dem ich arbeiten möchte! Am Ende kommt es auf die Präferenz an. Rails ist zwar langsamer, es ist jedoch einfacher, ein Projekt schnell zum Laufen zu bringen, und der Geschwindigkeitsunterschied kann geringfügig sein.

Ich habe beschlossen, mein nächstes Projekt mit Express JS zu erstellen, um zu sehen, wie sich diese Vor- und Nachteile zusammenfügen, wenn ich meinen eigenen Code schreibe.