Bitte sag mir ob:
- Node.js wird unsere Seite schneller machen!
- Node.js wird weniger Serverressourcen verbrauchen, wir können Geld sparen!
- Node.js macht uns produktiver!
- Node.js bedeutet, dass wir clientseitigen und serverseitigen JavaScript-Code freigeben können.
Zur Verdeutlichung schreiben wir einen Frontend-Server neu, der mit unserer vorhandenen Ruby on Rails-Anwendung als API kommuniziert. In der Zwischenzeit werden wir unsere Ruby on Rails-Anwendung in Services umgestalten.
Weitere Details zur bestehenden Architektur:
- Memcached für HTML partials Caching
- Redis für die Sitzung und einige strukturierte Daten-Caching
- MySQL Single Master, mehrere Slaves
- Es gibt einen großen Tisch, der viele Schreibvorgänge akzeptiert (stellen Sie sich eine Umfrage vor).
- Ansonsten liest meistens.
- MongoDB für einige Metadaten
- Ruby on Rails 3.0
- Nginx und Einhorn
architecture
ruby-on-rails
node.js
rewrite
user88487
quelle
quelle
Antworten:
Die meisten Fragen, die Sie stellen, lassen sich ohne Kontext nicht beantworten und sind mehr oder weniger umstritten, da das Management bereits die Wahl für Sie getroffen hat ... es sei denn, Sie fragen sich, ob ich kündige und angesichts all dieser Veränderungen einen neuen Job finde ?
Wenn Sie es schwer haben, empfehle ich Ihnen, diesen Beitrag zum Thema zu lesen: So überleben Sie einen von Grund auf neu geschriebenen Schreibvorgang, ohne dabei den Verstand zu verlieren .
Ich habe kürzlich damit begonnen, ein wenig Serverlogik in node.js umzuschreiben. Der Hauptgrund war, dass es derzeit in .NET geschrieben ist und wir aus MS-Umgebungen heraus migrieren möchten.
Meine bisherigen Erfahrungen waren positiv, Sie werden eine anfängliche Lernkurve mit all dem Nicht-Blockieren davon haben, aber wenn Sie einmal vorbei sind, ist es tatsächlich ziemlich lustig, zu codieren. Ich weiß, SPASS!
Es hat jedoch eine dunkle Seite, jeder Mann und sein Hund, der Front-End-Entwicklung mit JavaScript durchgeführt hat - und das ist hoffentlich jeder Front-End-Entwickler -, wird ein wenig aufgeregt, wenn Sie erwähnen, dass node.js serverseitiges Javascript ist Dies bedeutet jedoch nicht, dass Front-End-Entwickler über die erforderliche Erfahrung verfügen, um gute serverseitige Apps zu schreiben.
Zum einen müssen Sie berücksichtigen, dass ein schwerwiegender Fehler die gesamte App zum Erliegen bringt, da dies nicht auf Threads beruht. Die Einsätze sind also etwas höher, und Sie müssen alles explizit überprüfen und abfangen.
Für diejenigen, die sowohl Front als auch Back gemacht haben - und beide genießen -, ist es ein echter Bonus, die mentalen Kontexte nicht von Front-End- zu Back-End-Sprachen wechseln zu müssen.
quelle
Nun, ich denke nicht, dass das Umschreiben der Anwendung eine gute Idee war, es sei denn, sie lief schlecht. Um Ihre Fragen zu beantworten:
Node.js ist keine Zauberei. Ihre Anwendung hat eine große Anzahl von Benutzern, sodass Sie nicht sicher sein können, dass sie dadurch schneller wird.
Ja, Node.js verbraucht tatsächlich weniger Serverressourcen. Sie können also nicht nur Ressourcen sparen, sondern auch die vorhandenen Ressourcen besser nutzen. Dies liegt hauptsächlich an der Singlethread-Funktion von Node.js. Es gibt keinen Overhead für zusätzliche Threads.
Wieder ist Node.js keine Zauberei. Davon abgesehen könnte etwas Wahres dran sein. Node.js hat eine sehr aktive Community, die Hunderte von Modulen für jede mögliche Aufgabe erstellt hat. Es ist also sehr wahrscheinlich, dass der größte Teil der Arbeit für Sie erledigt wurde. Sie müssen nur die Teile zusammenpassen.
Theoretisch ja. Da Node.js JavaScript ist, können Sie Code zwischen dem Client und dem Server freigeben. Aber ich weiß nicht genau, was geteilt wird. Ich habe keinen Code geschrieben, der auf einem Client wiederverwendbar war. Dinge, die wir auf dem Server tun, haben normalerweise nichts mit dem Client zu tun. Wichtiger für mich ist der fehlende Kontextwechsel. Ich finde es einfacher, sowohl auf dem Client als auch auf dem Server in einer einzigen Sprache zu programmieren.
Da Node.js ein einzelner Thread ist, können nicht mehrere CPUs ausgenutzt werden , sofern dies nicht explizit konfiguriert wurde .
Schauen Sie sich auch die Kommentare an. Sie bieten einen guten Einblick in die Funktionsweise von Node.js.
quelle