Das erste ist die Leistung. Es fühlt sich an, als wäre die Leistung von Node.js nicht so gut wie gedacht. Die Speichernutzung liegt fast auf dem gleichen Niveau wie bei Ruby und höher als bei Python und PHP. In Bezug auf die Rechenleistung (dh die CPU-Auslastung) hat reines Rechnen keinen großen Vorteil, aber da es den asynchronen Prozess gut steuern kann, ist die Gesamtleistung viel besser als bei PHP. Persönlich bin ich der Meinung, dass Node.js ein großes Leistungspotenzial hat, da es viele große Projekte gibt, die sich der Verbesserung der Leistung virtueller JavaScript-Maschinen widmen – wie beispielsweise großen Browsern. Gleichzeitig ist JavaScript eine Sprache mit einfacher Syntax und a Offene Standards lassen sich im Gegensatz zu Python und PHP aufgrund von Kompatibilitätsbedenken nur schwer umfassend umbauen, um die Leistung zu verbessern.
Dann gibt es Paketmanager und Bibliotheken. Node.js hat npm integriert, weil npm ein sehr einfach zu verwendender Paketmanager ist, weil die Schwelle zum Schreiben von JavaScript niedrig ist und weil JavaScript viele hervorragende Front- End-Bibliotheken, die auf das Backend-Ende portiert wurden, sodass die Anzahl der Pakete auf NPM jetzt die von PyPI und RubyGems und die von PEAR und Composer bei weitem übersteigt. Eine Sache, die sich bei der Entwicklung von Node.js von PHP unterscheidet, ist dass niemand Angst davor hat, Abhängigkeiten hinzuzufügen, und dass jede kleine Anforderung auf NPM zu finden ist. Es gibt vorhandene Bibliotheken, um dies zu implementieren – und sie können oft gefunden werden. Daher besteht die Entwicklung von Node.js grundsätzlich darin, Abhängigkeiten zu kombinieren und dann tendenziell sogar eine kleine unabhängige Anforderung in eine Bibliothek zu schreiben. Dies ähnelt eher der UNIX-Idee. Andererseits ist die Node.js-Community sehr offen für Open Source. „Freundlich“ bedeutet hier, dass die meisten Bibliotheken offen sind und auf Github entwickelt werden und sehr lockere Protokolle wie MIT verwenden, die nicht mit der GPL vergleichbar sind.
In der Community sind die meisten Node.js-Anwendungen immer noch Web-Backends, und Web-Backend-bezogene Bibliotheken werden im Wesentlichen von einigen großen Leuten wie Express, Jshttp, Jade, Mocha und Koa unter der Leitung von TJ erstellt entwickelt von vier oder fünf Personen unter der Leitung des Leiters. Dies ist ein interessantes Phänomen. ——Obwohl Master TJ schließlich beschlossen hat, aus der Node.js-Community auszusteigen.
Die Toolkette Node.js ist relativ jung und in den letzten zwei Jahren sind viele nützliche Tools aufgetaucht, z. B. vorkompilierte Dialekte, Komponententests und Simulationstests, Build-Tools usw.; ich kann nicht sagen, wie gut sie sind Das ist es, aber es muss viel besser als PHP sein. Was die Gründe angeht, liegt es zum einen vor allem daran, dass diese Bibliotheken sowohl für das Frontend als auch für das Backend verwendet werden können. Aufgrund der harten Anforderungen des Web-Frontends profitiert Node.js übrigens davon Aufgrund der flexiblen und einfachen Syntax von JavaScript können diese Bibliothekstools dies auf sehr clevere und elegante Weise tun. Was IDEs betrifft, die immer noch vom Web-Frontend profitieren, sind immer noch einige IDEs verfügbar – obwohl die JavaScript-Sprache selbst für statische Analysen nicht sehr förderlich ist.
Grammatik, ich möchte noch einmal betonen, dass die Syntax von JavaScript einfach und flexibel ist. Der wichtige Punkt ist, dass JSON fast das am weitesten verbreitete Datenformat im Webbereich ist und JavaScript native Unterstützung für JSON bietet. Alle Datenstrukturen in JavaScript werden um Object erweitert, eine Obermenge von JSON, einschließlich Arrays, Funktionen, Objekte und Klassen. Dies bringt natürlich auch Probleme mit sich, da es beim Schreiben nur wenige Einschränkungen gibt und ich nicht weiß, wie man schreibt. Als ich anfing zu lernen, musste ich immer wieder umgestalten, um die Vor- und Nachteile zu verstehen Verschiedene Entwurfsmuster in verschiedenen Situationen finden und die geeigneten finden. Man kann sagen, dass der Einstieg in Node.js einfach ist, aber dennoch die Fähigkeiten des Entwicklers zum Erstellen großer Projekte auf die Probe stellt. Aufgrund historischer Probleme ist die Syntax von JavaScript nicht schön, aber glücklicherweise verfügen wir über verschiedene vorkompilierte Dialekte wie Coffee Script, TypeScript, Dart, LiveScript und ClojureScript, sodass immer einer für Sie geeignet ist.
Nutzungsszenarien: JavaScript ist eine allgemeine Programmiersprache, und es besteht keine Notwendigkeit, über das Front- und Backend des Webs zu sprechen. Persönlich denke ich, dass Node.js immer noch sehr gut zum Schreiben von Server-Tools oder Betriebs- und Wartungstools geeignet ist, da viele Situationen in Betrieb und Wartung asynchron funktionieren können und JavaScript relativ gut regelmäßig unterstützt wird, sodass es kein großes Problem darstellt, es zu ersetzen bash und Python müssen nur den Interpreter installieren, und Sie können ihn ohne Angst vor der Einführung von Abhängigkeiten verwenden. Für die Programmierung von Desktops und Mobilgeräten verfügt Node.js über Node-Webkit und verschiedene andere Shells. Obwohl die aktuelle Benutzererfahrung nicht sehr gut ist, können die Entwicklungskosten erheblich gesenkt werden, und die Zukunft muss rosig sein.
Lassen Sie uns abschließend über das Erlernen von Node.js sprechen. Meiner Meinung nach gibt es zwei Punkte beim Erlernen von Node.js. Der eine besteht darin, die „asynchrone E/A basierend auf Ereignisrückrufen“ von Node.js zu klären Node.js und andere Mainstream-Programme Das Andersartigste an der Sprache. Dann besteht der zweite Schritt darin, einen Blick auf alle Top-100-Bibliotheken auf NPM zu werfen. Sie müssen sie nicht im Detail lesen und wissen, wofür die einzelnen Bibliotheken gedacht sind. Nachdem Sie diese beiden Schritte abgeschlossen haben, herzlichen Glückwunsch, Sie sind bereits Node.js-Entwickler.