6 Dinge, die Sie über Node.js wissen sollten

JavaScript frisst die Welt, und neue Tools und Verbesserungen erreichen ein rasantes Tempo. Mit Node.js, einem Open-Source-Laufzeitsystem, das 2009 von Ryan Dahl erfunden wurde, hat sich diese Reichweite auf die Serverseite ausgeweitet.

Node.js ist sehr beliebt geworden. Codierer verwenden es überall, um APIs zu erstellen und eine neue Matrix für die Interoperabilität im Internet zu erstellen. Joyent war von Anfang an der Hauptsponsor von Node.js. Im New Tech Forum dieser Woche skizziert Ben Wen, Vice President für Produktmarketing bei Joyent, sechs Dinge, die Sie über das Phänomen wissen sollten, das die Backend-Entwicklung erschüttert. - Paul Venezia

Node.js ist ein Laufzeitsystem zum Erstellen (meistens) serverseitiger Anwendungen. Es ist am besten als beliebtes Mittel für JavaScript-Codierer bekannt, um Echtzeit-Web-APIs zu erstellen.

Node.js ist jedoch kein JavaScript-Framework. In der Tat haben mehrere Autoren hervorragende Frameworks speziell für Node.js geschrieben, darunter Express.js, Restify.js und Hapi.js. Was genau findet dieses Phänomen seinen Weg in Webanwendungen, Betriebssystem-Wrapper, Mikrocontroller und Roboter?

Im Kern ist Node.js eine abgespeckte, hochgradig anpassbare Server-Engine - ein Proto-Server, wenn Sie so wollen -, da es sofort nichts tut, bis Sie es eingerichtet haben. Dieser Proto-Server wird in einer Schleife verarbeitet und ist bereit, Anforderungen anzunehmen und darauf zu antworten. Jede dieser Anforderungen selbst kann andere Anforderungen an einen anderen Teil des Systems auslösen, z. B. das Lesen einer Datei von der Festplatte oder das Senden eines Signals zum Drehen eines Motors an einem Roboterarm. Diese als Ereignisschleife bekannte Schleife ist der "Laufzeit" -Teil.

Node.js wird mit Workhorse-Konnektoren und -Bibliotheken geliefert, z. B. in Bezug auf HTTP, SSL, Komprimierung, Dateisystemzugriff sowie unformatiertes TCP und UDP. JavaScript, das bereits für die Ereignisschleifenumgebung eines Webbrowsers für GUI- und Netzwerkereignisse optimiert ist, ist eine hervorragende Sprache für die Verkabelung dieser Konnektoren. Sie können Konnektoren fast genauso einfach in die Ereignisschleife einrasten wie Lego-Teile. Auf diese Weise können Sie einen einfachen, dynamischen Webserver in nur wenigen Zeilen JavaScript erstellen.

Kurz gesagt, Node.js ist ein Laufzeitsystem, mit dem sich auf einfache Weise ein Netzwerk oder andere ereignisgesteuerte Anwendungsserver erstellen lassen. Hier sind die sechs Dinge, die Sie darüber wissen müssen.

1. JSON hat gewonnen

JSON (JavaScript Object Notation) ist ein praktisches, zusammengesetztes und äußerst beliebtes Datenaustauschformat. JSON hat es JavaScript-Entwicklern ermöglicht, schnell APIs zu erstellen und die Interoperabilität in großem Maßstab zu fördern - ein Hauptziel für Node.js-Codierer. Die starke Einfachheit von JSON lässt sich in nur fünf Eisenbahnparsediagrammen ausdrücken, insbesondere ohne das selbstbewusste Putzen von XML und seinen Intriganten (SOAP, XSD, WS- *, RELAX-NG und deren endlosen Ausschusssitzungen).

JSON und JavaScript haben die gegenseitige Bedeutung verstärkt. In den Anfängen des Web mussten dynamische Daten im Browser mit der einzigen vernünftigerweise verständlichen Nicht-Plugin-Sprache bearbeitet, gefiltert und bearbeitet werden: JavaScript. Unabhängig von ihrem ursprünglichen netzwerkpräsentierbaren Format mussten Daten in einem JavaScript-Objekt zusammengefasst werden. Die Abhängigkeit von JSON für die allgemeine Datenbeschreibung führte zu dokumentenorientierten NoSQL-Datenbanken wie MongoDB und CouchDB. Heute ist alles JSON.

2. JavaScript ist überall

JavaScript ist eine skurrile, objektorientierte, C-ähnliche Sprache. Es ist die einzige Möglichkeit, Anwendungen im Browser zu entwickeln. Jede Woche wird ein neues Framework eingeführt, um Entwickler zu werben. Und mit Node.js ist JavaScript auf den Server übergegangen. Konkurrierende Implementierungsteams haben JavaScript-Interpreter vorangebracht, sodass die V8-Engine von Google respektabel schnell ist - schnell genug, um sich im Kern von Node.js zu befinden.

JavaScript verfügt auch über die interne Fähigkeit, den Ereignisschleifenmechanismus auf einfache Weise zu handhaben. Andere Sprachen verfügen über diese Funktion, die von ihren eigenen Ereignissystemen verwendet werden. Python hat Twisted und Ruby hat EventMachine. Aufgrund der Geschichte bieten diese beiden Event-Loop-Systeme relativ einfache Möglichkeiten, um einen bestimmten Leistungsfehler zu begehen, während JavaScript relativ frei von dieser Gefahr bleibt.

JavaScript läuft auch in vielen Betriebssystemumgebungen, die in der Vergangenheit im Browser unterstützt werden mussten. Zusammen mit der libuv-Bibliothek, um einige der Betriebssystemunterschiede zu beseitigen, bedeutet dies, dass Node.js einen breiten Fußabdruck hat.

Die größte Kraft für die Migration von JavaScript auf die Serverseite ist jedoch der Mensch. Programmierer müssen weniger mentale Kontextwechsel zwischen einem Webbrowser und dem Server durchführen. Es werden sogar Anstrengungen unternommen, um die Umgebungen zwischen Client und Server zu vereinheitlichen, sodass Code an beiden Standorten gleich gut ausgeführt werden kann, was das Modell weiter vereinfacht und zu einer höheren Produktivität führt.

3. Teilen wird empfohlen

Das Ethos der Node.js-Community lautet "fröhlich teilen". Es ist erschreckend einfach, Pakete mit Bibliothekscode zu teilen - technisch, kulturell, prozedural und rechtlich. Der Node Package Manager ist in Node.js enthalten und auf ein Repository von fast 50.000 Paketen angewachsen, sodass es wahrscheinlich ist, dass ein anderer Entwickler bereits eine Lösung für Ihr Problem oder sogar einige weniger häufige gepackt hat.

Die Namespace-Philosophie von Node.js besteht im Wesentlichen darin, dass kein Autor unter einem nicht verwendeten Modulnamen im gemeinsam genutzten öffentlichen Repository veröffentlicht. Das Teilen von Code unter der Open-Source-Lizenz des MIT wird in der Community dringend empfohlen, wodurch die gegenseitige Bestäubung von Code aus Sicht des geistigen Eigentums relativ sorgenfrei (und anwaltfrei) ist. Schließlich engagiert sich die Community in hohem Maße für die Bindung interessanter C-Bibliotheken wie Computer Vision (OpenCV) und der optischen Open Source-Zeichenbibliothek Tesseract. Letzteres ermöglicht beispielsweise Wochenendprojekte wie Imdex, die Bilder aus dem Web verarbeiten, damit sie automatisch nach geschriebenen Inhalten durchsucht werden können.

4. Node Package Manager funktioniert weitgehend

In Bezug auf die Verwaltung von Bibliotheksabhängigkeiten verdient es der Node Package Manager, aufgerufen zu werden. Node Package Manager ist die Wurzel fast aller Bereitstellungssysteme für Node.js und liegt den vielen PaaS-Anbietern (Platform-as-a-Service) für Node.js zugrunde, wodurch es tatsächlich etwas einfacher ist, kleinere Anwendungen zwischen Anbietern zu verschieben. Durch die einfache und zuverlässige Paketverwaltung ist das Node-Ökosystem in der jüngeren Geschichte sehr gut gewachsen, sodass der zugrunde liegende öffentliche Dienst jetzt auf die nächste Ebene skaliert werden muss.

5. Minimalismus "Batterien nicht enthalten"

Node.js-Anwendungen und Node.js Core selbst sind in kleine Module unterteilt, die zusammengesetzt und gemeinsam genutzt werden. Jedes Paket und Werkzeug kann eng gefasst und handlich gestaltet werden. Diese können dann zusammen gebacken werden - oft ohne zu viel unnötiges Kneten. Die unbeschwerte, sorglose Art, ein Modul zu erstellen, fördert auch das Experimentieren in der Community, und es gibt einige Überschneidungen und Experimente in der Paketpopulation. Bei guter Ausführung erledigt jedes Paket normalerweise eine Aufgabe (z. B. node-optimist.js: 'leichtes Parsen von [Befehlszeilen] -Optionen').

6. Instrumentierung

Schließlich ist Node.js für den Produktionseinsatz gut instrumentiert. Dies bedeutet, dass es Tools gibt, mit denen eine Anwendung ihre volle Produktionsbereitschaft und Leistung erreichen kann. Wie bei jeder ausgereiften Technologie gibt es Bereiche, in denen mehr Dokumentation, Tools und Best Practices hilfreich sein könnten. Aber als Node.js auf die nächste Hauptversion zusteuert, steht es auf einem ziemlich soliden Fundament.

Knoten im Kontext

Wenn Sie JavaScript kennen, ist Node.js eine sanfte Einführung in das asynchrone Computing für das Web. Und es kommt einfach so vor, dass Node.js geeignet ist, Webprobleme genau dieser Art zu lösen: Integrations- und Klebeprobleme mit kaskadierenden Aufrufen von API zu API.

Wo funktioniert Node.js nicht so gut? Es ist nicht völlig angemessen an Orten, an denen eine Single-Threaded-Berechnung das Hindernis sein wird, wie bei einigen Arten der sukzessiven Approximation oder Klassifizierung. In diesen Fällen ist es für Node.js effizienter, die Anforderung an eine unabhängige Bibliothek zu senden, die für die Aufgabe vorgesehen ist, wo sie auf Hunderte oder Tausende von Prozessoren verteilt werden kann.

Node.js reift schnell und wird in immer mehr unternehmenskritischen und umsatzkritischen Systemen wie E-Commerce-Black-Friday-Infrastrukturen eingesetzt. Der Einstieg in Node.js ist einfach, und dennoch ist Node.js tief genug, um moderne Webkomplexitäten zu bewältigen. Wenn Sie Ihre Website der nächsten Generation erstellen - insbesondere APIs für die mobile und Webintegration - oder wenn Sie etwas Neues erstellen, das von den zugrunde liegenden Diensten selbst abhängt, ist Node.js ein Laufzeitsystem, das sehr gut für Sie funktionieren könnte.

Das New Tech Forum bietet die Möglichkeit, neue Unternehmenstechnologien in beispielloser Tiefe und Breite zu erkunden und zu diskutieren. Die Auswahl ist subjektiv, basierend auf unserer Auswahl der Technologien, die wir für wichtig und für die Leser von größtem Interesse halten. akzeptiert keine Marketingmaterialien zur Veröffentlichung und behält sich das Recht vor, alle eingebrachten Inhalte zu bearbeiten. Senden Sie alle Anfragen an [email protected]

Dieser Artikel "6 Dinge, die Sie über Node.js wissen sollten" wurde ursprünglich auf .com veröffentlicht. Folgen Sie .com auf Twitter, um die neuesten Nachrichten zur Geschäftstechnologie zu erhalten.