© 4 PM production/Shutterstock.com
JavaScript Kompendium
Aufbau und Anwendung von Node.js

Ein Blick unter die Haube

2009 war die Geburtsstunde von Node.js und seitdem hat sich viel getan. Die Geschichte der serverseitigen JavaScript-Plattform ist voller Licht und Schatten. Mittlerweile hat sich Node.js jedoch in der Webentwicklung etabliert und kommt als Standalone-Server, im Verbund mit anderen Technologien, als Basis für Desktopapplikationen oder zur Entwicklung von Kommandozeilenwerkzeugen zum Einsatz. Grund genug für uns, einen Blick unter die Haube der Plattform zu werfen und herauszufinden, wie Node.js aufgebaut ist und wie es sich verwenden lässt.

Sebastian Springer


Node.js erhebt nicht den Anspruch, eine Komplettlösung zu sein. Es ist vielmehr ein Werkzeugkasten, mit dem Sie Ihre Applikation aufbauen können. Allerdings müssen Sie sich darauf gefasst machen, dass Sie entweder sehr viel selbst implementieren oder zahlreiche zusätzliche Pakete installieren müssen. Der Grund hierfür ist, dass der Fokus von Node.js auf Flexibilität, Performance, Stabilität und Benutzbarkeit liegt.

Flexibilität: Mit den Schnittstellen von Node.js lässt sich nahezu jedes Problem lösen. Sie können auf Schnittstellen zum Betriebssystem, zum Dateisystem oder zum Netzwerk zurückgreifen. Diese Schnittstellen arbeiten jedoch auf einer sehr niedrigen Ebene und weisen nur einen überschaubaren Grad an Abstraktion auf. Für Sie bedeutet das, dass Sie beispielsweise im Fall eines TCP Streams die einzelnen Pakete entgegennehmen und behandeln müssen. Auf dieser Basis lassen sich jedoch alle TCP-basierten Protokolle abbilden. Performance: Der Kern von Node.js ist recht überschaubar, der grundsätzliche Memory Footprint also auch entsprechend klein. Das liegt vor allem daran, dass der Kern von Node.js mit seinen Modulen über die Jahre klein gehalten wurde. Die Philosophie der Entwickler ist es, dass nur grundlegende Technologien implementiert werden. Alle weiteren Anforderungen müssen in zusätzliche Pakete ausgelagert werden. Neben dem geringen Speicherverbrauch ist auch die Laufzeitperformance bemerkenswert. Die V8 Engine, das Herzstück von Node.js, weist zahlreiche Optimierungen auf, die die Ausführung einer Applikation erheblich beschleunigen. Dazu aber später noch mehr. Stabilität: Nach einer initialen Sturm-und-Drang-Phase hat sich die Node.js-Community schnell dazu entschlossen, die äußeren Schnittstellen der Plattform stabil und verlässlich zu halten. Und deshalb werden die Änderungen an dieser Stelle auf ein Minimum reduziert. Das wird beispielsweise durch den Stabilitätsindex der einzelnen Module deutlich. Ist ein Modul als stable gekennzeichnet, sind nur geringfügige Änderungen in den Major Releases der Plattform zu erwarten. Bei einem als experimental gekennzeichneten Modul müssen Sie mit Änderungen rechnen. Benutzbarkeit: Reporting ist ein großer Punkt auf der Agenda der Node.js-Entwickler. Hiermit sind Schnittstellen gemeint, über die Sie Informationen über das Laufzeitverhalten von Node.js und Ihrer Applikation beziehen können. Der Ausbau dieser Fähigkeiten führt zu verbesserten Analyse- und Debuggingwerkzeugen. In diesem Bereich wird aktue...

JavaScript Kompendium
Aufbau und Anwendung von Node.js

Ein Blick unter die Haube

2009 war die Geburtsstunde von Node.js und seitdem hat sich viel getan. Die Geschichte der serverseitigen JavaScript-Plattform ist voller Licht und Schatten. Mittlerweile hat sich Node.js jedoch in der Webentwicklung etabliert und kommt als Standalone-Server, im Verbund mit anderen Technologien, als Basis für Desktopapplikationen oder zur Entwicklung von Kommandozeilenwerkzeugen zum Einsatz. Grund genug für uns, einen Blick unter die Haube der Plattform zu werfen und herauszufinden, wie Node.js aufgebaut ist und wie es sich verwenden lässt.

Sebastian Springer


Node.js erhebt nicht den Anspruch, eine Komplettlösung zu sein. Es ist vielmehr ein Werkzeugkasten, mit dem Sie Ihre Applikation aufbauen können. Allerdings müssen Sie sich darauf gefasst machen, dass Sie entweder sehr viel selbst implementieren oder zahlreiche zusätzliche Pakete installieren müssen. Der Grund hierfür ist, dass der Fokus von Node.js auf Flexibilität, Performance, Stabilität und Benutzbarkeit liegt.

Flexibilität: Mit den Schnittstellen von Node.js lässt sich nahezu jedes Problem lösen. Sie können auf Schnittstellen zum Betriebssystem, zum Dateisystem oder zum Netzwerk zurückgreifen. Diese Schnittstellen arbeiten jedoch auf einer sehr niedrigen Ebene und weisen nur einen überschaubaren Grad an Abstraktion auf. Für Sie bedeutet das, dass Sie beispielsweise im Fall eines TCP Streams die einzelnen Pakete entgegennehmen und behandeln müssen. Auf dieser Basis lassen sich jedoch alle TCP-basierten Protokolle abbilden. Performance: Der Kern von Node.js ist recht überschaubar, der grundsätzliche Memory Footprint also auch entsprechend klein. Das liegt vor allem daran, dass der Kern von Node.js mit seinen Modulen über die Jahre klein gehalten wurde. Die Philosophie der Entwickler ist es, dass nur grundlegende Technologien implementiert werden. Alle weiteren Anforderungen müssen in zusätzliche Pakete ausgelagert werden. Neben dem geringen Speicherverbrauch ist auch die Laufzeitperformance bemerkenswert. Die V8 Engine, das Herzstück von Node.js, weist zahlreiche Optimierungen auf, die die Ausführung einer Applikation erheblich beschleunigen. Dazu aber später noch mehr. Stabilität: Nach einer initialen Sturm-und-Drang-Phase hat sich die Node.js-Community schnell dazu entschlossen, die äußeren Schnittstellen der Plattform stabil und verlässlich zu halten. Und deshalb werden die Änderungen an dieser Stelle auf ein Minimum reduziert. Das wird beispielsweise durch den Stabilitätsindex der einzelnen Module deutlich. Ist ein Modul als stable gekennzeichnet, sind nur geringfügige Änderungen in den Major Releases der Plattform zu erwarten. Bei einem als experimental gekennzeichneten Modul müssen Sie mit Änderungen rechnen. Benutzbarkeit: Reporting ist ein großer Punkt auf der Agenda der Node.js-Entwickler. Hiermit sind Schnittstellen gemeint, über die Sie Informationen über das Laufzeitverhalten von Node.js und Ihrer Applikation beziehen können. Der Ausbau dieser Fähigkeiten führt zu verbesserten Analyse- und Debuggingwerkzeugen. In diesem Bereich wird aktue...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang