Node.js – Professionell hochperformante Software entwickeln

Das Buch von Robert Prediger und Ralph Winzinger zur maßgeblichen serverseitigen JavaScript-Technik ist informativ sowie praxisnah und lässt sich bis auf wenige Ausnahmen mit viel Spaß lesen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 4 Min.
Von
  • Michael Müller

Robert Prediger, Ralph Winzinger
Node.js

Professionell hochperformante Software entwickeln

Hanser 2015
XV + 352 Seiten, € 34,99
978-3-446-437227

Lange Zeit war JavaScript fast ausschließlich im Browser beheimatet. Auch wenn ursprünglich dafür entwickelt, sind mittlerweile auch andere Implementierungen vorhanden. Mit Node.js erhält der Entwickler eine etablierte JavaScript-Umgebung, die ihm ermöglicht, mit dieser dynamischen Sprache Serveranwendungen zu erstellen – und diese, so prangt es auf der Titelseite des vorliegenden Buchs, hochperformant. Das liege, so die Autoren, in der Architektur von Node.js begründet, wo sich ein Thread nichtblockierend um den Event-Loop kümmert.

Auf diverse Aspekte dieser Architektur kommen sie im Laufe ihres Buchs an verschiedenen Stellen zurück, beispielsweise wenn es später um die Skalierung geht. Oder um die Verteilung der Anfragen an andere Threads. Insbesondere räumen sie mit dem vielfach bestehenden Vorurteil auf, Node.js sei "single-threaded". Vielmehr stellen sie dar, wie die Anwendungen aus Entwicklersicht "single-threaded" daher kommen – und damit keine Synchronisationsmechanismen benötigen –, dennoch aber auf die Prozessorkerne verteilt werden. Im Wesentlichen geht es in ihrem Buch jedoch um Code.

Aller Anfang ist eine kurze Einführung: hier der erste Einblick in die "Ein-Thread"-Architektur, welche Grundlage der hohen Performanz ist, so die Autoren. Danach geht es um Download und Installation von Node.js sowie Entwicklungsumgebungen (wobei interessanterweise NetBeans trotz ausgefeilter Nodes-Unterstützung fehlt) und den Node Package Manager. Zum Abschluss der kurzen Einführung wird mal eben ein Webserver aufgesetzt. Eine Handvoll Codezeilen reicht dafür.

Den größten Teil des Buchs nehmen die beiden Teile "You build it ..." und "... you run it" ein. Ersterer zeigt zahlreiche Codebeispiele, während letzterer sich unter anderem mit Repositories, Deployment, Logging und Debugging beschäftigt, aber auch noch mal auf die Architektur eingeht. Im Build-Teil geht es um Themen wie Dateizugriff, Streams, Sockets, Webservice, aber auch Lösungen, um der Callback-Hölle zu entfliehen. So thematisch sortiert, steigen die Autoren meist mit einer Erläuterung der Grundlagen ein, um dann relativ schnell zu einer Menge kleiner Codebeispiele zu kommen. Teilweise wird dabei auf zusätzlich zu installierende Libraries zurückgegriffen. Dann kann es jedoch vorkommen, dass die Autoren haarklein die Funktionen dieser Bibliothek erläutern, auch wenn nebensächliche Funktionen allenfalls noch am Rande mit dem Thema des Kapitels zu tun haben. An solchen Stellen wirkt das Buch dann ein wenig zerrupft und lässt sich nicht so flüssig lesen.

Spätestens im Run-Teil werden die Zusammenhänge jedoch wieder größer. Er startet mit dem Publizieren eigener Module. Wenn auch viele Entwickler nicht alles gleich im Internet für die Weltgemeinschaft veröffentlichen, zeigen die Autoren, wie dies zumindest firmenintern geschehen kann. Die Auslieferung fertiger Applikationen, sei es auf einen Server, sei es im Docker-Container wird ebenso thematisiert wie der Betrieb mit Logging, Debugging und Performance-Betrachtungen. Über den Tellerrand von JavaScript hinaus geht es beim Einbinden von C-Bibliotheken.

Den Abschluss des Buchs bildet ein Ausblick auf Alternativen, von denen Prediger und Winzinger Vert.x etwas detaillierter vorstellen, da dies ein ähnliches Potenzial wie Node.js habe.

Insgesamt ergibt sich ein recht informatives und praxisnahes Buch, das bis auf die genannten Ausnahmen sich mit viel Spaß lesen lässt.

Michael Müller
ist als Bereichsleiter Softwareentwicklung der InEK GmbH verantwortlich für Projekte im Web-, Java- und .NET-Umfeld. Daneben betätigt er sich als freier Autor und verfasst Fachartikel zu diversen Entwicklungsthemen sowie Buchrezensionen.
(ane)