Node.js - Rezepte und Lösungen -  Philip Ackermann

Node.js - Rezepte und Lösungen (eBook)

eBook Download: EPUB
2019 | 1. Auflage
651 Seiten
Rheinwerk Computing (Verlag)
978-3-8362-6455-6 (ISBN)
Systemvoraussetzungen
49,90 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Ganz egal, wie neu oder vertraut Ihnen Node.js ist, Sie kennen sicherlich die Situation, manchmal inmitten eines Projekts vor scheinbar unlösbaren Problemen zu stehen: mal funktioniert der Datenbankzugriff nicht, mal laufen die Anfragen an die Webservices einfach ins Leere. Und dabei müssen Sie Ihre Webanwendung so schnell wie möglich fertigstellen. Sie haben also weder Zeit noch Lust, sich durch ewig lange Dokumentationen oder ein umfangreiches Handbuch zu wühlen, bis Sie den entscheidenden Hinweis entdeckt haben. Abhilfe schafft hier die vorliegende Rezeptsammlung! Der Autor stellt über 100 verschiedene Problemfelder aus dem Praxisalltag vor und zeigt Ihnen konkrete Lösungswege für diese auf.

Aus dem Inhalt:

  • Projektstruktur und Konfiguration: Node.js installieren, verwenden und debuggen
  • Events, I/O und Streams
  • Mit Dateisystemen und Dateiformaten arbeiten
  • Auf Datenbanken zugreifen
  • Persistzenz, Messaging und Enterprise Integration: ActiveMQ, Apache Kafka, HiveMQ, RabbitMQ, ZeroMQ
  • Webanwendungen, Sockets und Email-Kommunikation
  • Webservices und Microservices: GET-, POST-, PUT- und DELETE-Anfragen
  • Web APIs
  • Entwicklungsprozesse optimieren
  • Performance und Sicherheit verbessern
  • Deployment, Publishing und Betrieb



Philip Ackermann ist CTO der Cedalo AG und Autor mehrerer Fachbücher und Fachartikel über Java und JavaScript. Seine Schwerpunkte liegen in der Konzeption und Entwicklung von Node.js- und JEE-Projekten in den Bereichen Industrie 4.0 und Internet of Things.

Vorwort


Das erste Mal in Kontakt kam ich mit Node.js vor ungefähr acht Jahren: Im Jahr 2011 arbeitete ich beim Fraunhofer-Institut für Angewandte Informationstechnik an einer Software zur Evaluierung von Websites hinsichtlich Aspekten wie Barrierefreiheit, Suchmaschinenoptimierung, Corporate Identity und Web Compliance im Allgemeinen. Die Software war in der ersten Version unter Verwendung des GUI-Frameworks Swing als reine Java-Desktopanwendung implementiert und später in Version 2 als Client-/Server-Webanwendung auf Basis von Webservices migriert worden.

Die Software war zwar stabil, aber mit der Zeit merkten wir, dass wir immer mehr an die Grenzen von Java stießen. Bei den Websites, die mit der Software evaluiert werden sollten, handelte es sich größtenteils nicht mehr um statische Websites, sondern um Single-Page Applications, was wiederum verlangte, diese Applikationen auch auf Server-Seite zu rendern, um eine aussagekräftige Evaluierung durchführen zu können. Da die Möglichkeiten, die Java diesbezüglich zu dieser Zeit bot, für uns nicht zufriedenstellend waren, suchten wir nach Alternativen und fanden sie in dem Headless Browser PhantomJS, einem Browser ohne grafische Oberfläche, der über JavaScript gesteuert werden kann.

Mit diesem ersten Schritt von Java in Richtung JavaScript führte eines zum anderen, und wir entschieden uns, im Hinblick auf Version 3 der Software zunächst einzelne Komponenten und im Laufe des anschließenden Refactorings nahezu alle Komponenten in JavaScript neu zu schreiben. Ausschlaggebender Punkt dafür war aber nicht PhantomJS, sondern ein anderer neuer Player im JavaScript-Universum: die Laufzeitumgebung Node.js (damals noch in Version 0.1), die es überhaupt erst möglich machte, JavaScript effizient auf dem Server auszuführen, und die aus genau diesem Grund maßgeblich für den erneuten Erfolg von JavaScript mitverantwortlich war und immer noch ist.

Der Erfolg von JavaScript und Node.js ist nach wie vor ungebrochen. Ob im Bereich von Webanwendungen, mobiler Anwendungen, IoT-Anwendungen, Desktopanwendungen oder im Rahmen des Build-Prozesses. Ob auf einem herkömmlichen Server, in der Cloud oder auf einem Minicomputer wie dem Raspberry Pi: JavaScript und damit Node.js spielt mittlerweile in allen Bereichen eine wichtige Rolle und ist damit eine ernstzunehmende Konkurrenz für »die großen Sprachen« Java, C# oder PHP.

Aktuelle Umfragen, Trends und die Popularität von Node.js-Projekten bei GitHub sind nur einige Indikatoren hierfür. Hinzu kommt die große Community und die Menge an Open-Source-Projekten: So listet bspw. die Package-Registry des Node.js Package Managers derzeit mehr als 1.000.000 Packages (zum Vergleich: Vor etwa einem Jahr waren es noch rund 700.000 Packages) auf. Zudem gelten Node.js-Anwendungen als äußerst performant, sind dank nicht blockierender Ein- und Ausgabe hervorragend skalierbar und – auch aus Projektmanagementsicht – insofern erstrebenswert, als dass im besten Fall die gleichen JavaScript-Entwickler, die das Frontend entwickeln, auch in der Lage sind, das Backend zu entwickeln.

Doch wie soll man sich im Dschungel der Packages zurechtfinden, und welche Aspekte sind relevant für die Implementierung von Node.js-Projekten?

In diesem Buch habe ich Ihnen eine repräsentative Auswahl von praxiserprobten Techniken und Rezepten vorbereitet, die meine Erfahrung aus über acht Jahren Projekt- und (insbesondere) Produktentwicklung mit Node.js und über 20 Jahren in der Software- und Webentwicklung widerspiegeln. Dabei war mir wichtig, trotz komprimierter Rezept-Form ein Maximum an Informationsgehalt sicherzustellen und Ihnen so viel Insiderwissen wie möglich zu vermitteln.

Für wen ist dieses Buch?


Wenn ich als Entwickler – entsprechende Grundkenntnisse in der Programmierung vorausgesetzt – eine neue Programmiersprache lernen möchte und die Wahl hätte zwischen einem Buch, das alle Grundlagen behandelt, und einem Buch, das mir auf den Punkt genau Problemstellungen und die dazu passenden Lösungen präsentiert, würde ich zu letzterem greifen.

Mich würden in erster Linie nicht Fragen interessieren wie »Wie erstelle ich eine for-Schleife?«, »Wie erzeuge ich Objekte?«, »Wie erstelle ich eine Variable vom Typ String?« (okay, diese Fragen würde ich mir auch stellen, aber sie sind doch vermutlich innerhalb weniger Minuten geklärt), sondern Fragen wie »Wie implementiere ich eine REST-API?«, »Wie greife ich auf Datenbanken zu?«, »Welche Tools und Bibliotheken gibt es für welchen Anwendungsfall?« und »Wie strukturiere ich meine Applikation?«.

Node.js lernen Sie natürlich nicht allein dadurch, dass Sie ein Buch (oder mehrere) zu diesem Thema lesen. Sie müssen sich schon selbst die Hände schmutzig machen. Und hierbei, denke ich, eignet sich der rezeptartige Aufbau besonders gut. Mich haben immer schon Bücher, die diesem Aufbau folgen, mehr angesprochen, beispielsweise die Klassiker »Refactoring« von Martin Fowler, »Design Patterns – Elements of Reusable Object-Oriented Software« der »Gang of Four« oder – ebenfalls ein Klassiker, zumindest in der Java-Community – »Effective Java« von Joshua Block.

Wenn Sie dies ähnlich wie ich sehen und einen rezeptartigen Aufbau ebenso als effizienter empfinden, können Sie bedenkenlos zu dem vorliegenden Buch greifen.

Wie ist dieses Buch aufgebaut?


Insgesamt besteht das Buch aus 13 Kapiteln zu Themen, die ich als besonders wichtig empfinde, wenn es um die Entwicklung unter Node.js geht. Verteilt auf diese Kapitel sind insgesamt 105 Rezepte, mal mehr, mal weniger lang. Das liegt in der Natur der Sache: Wie man den Inhalt einer Datei einliest, ist einfach schneller erklärt als das Konzept und die Verwendung von GraphQL, Event-Handling ist schneller erklärt als die Besonderheiten und Features des MQTT-Protokolls, und wie man eine Webanwendung über HTTPS bereitstellt, ist schneller erklärt als das Deployment über Docker.

Jedes Rezept beginnt mit einer konkreten, meist aus einem Satz bestehenden Problemstellung, anhand derer Sie – zusammen mit der sprechenden Überschrift des Rezeptes – direkt erkennen können, ob das Rezept für Ihren konkreten Anwendungsfall relevant ist oder nicht. Anschließend folgt immer der Abschnitt »Lösung«, in dem ich erläutere, wie Sie das beschriebene Problem am besten angehen und lösen. Jedes Rezept endet mit einem Abschnitt »Ausblick«, in dem ich einerseits auf weiterführende Informationen und alternative Lösungsstrategien eingehe, aber auch auf andere Rezepte verweise, die mit dem jeweils aktuellen Rezept verwandt sind. Den Quelltext zu den Rezepten können Sie übrigens auf der offiziellen Website zum Buch unter www.rheinwerk-verlag.de/nodejs_4698/ herunterladen. Alternativ dazu steht der Quelltext auch in einem GitHub-Repository unter https://github.com/cleancoderocker/nodejskochbuch zur Verfügung.

Wenn Sie mein JavaScript-Profibuch »Professionell entwickeln mit JavaScript – Design, Patterns und Praxistipps« gelesen haben, wissen Sie, dass es in JavaScript nicht immer nur die eine richtige Technik gibt, um ein Problem zu lösen. Stattdessen führen viele verschiedene Wege zum Ziel. Und genauso verhält es sich auch mit der Entwicklung unter Node.js. Unabhängig von den JavaScript-Techniken, die natürlich auch unter Node.js relevant sind, gibt es oft verschiedene weitere Techniken, um die gegebenen Problemstellungen zu lösen. Auch hier gibt es nicht immer den einen richtigen Weg. Vielmehr sollen Sie mit den Rezepten und Lösungen in diesem Buch lernen, Problemstellungen richtig einzuschätzen und selbstständig in der Lage zu sein, die richtige Lösung anzuwenden.

Wie sollte ich das Buch durchlesen?


Prinzipiell können Sie das Buch auf verschiedene Arten durchlesen bzw. durcharbeiten. Trotz des rezeptartigen Aufbaus folgt das Buch einem roten Faden, der sich vom ersten Rezept bis zum letzten Rezept durchzieht. In den allermeisten Fällen sind die Rezepte zwar vollständig unabhängig voneinander, und nur in einigen wenigen Fällen bauen einzelne Rezepte auf anderen Rezepten auf, allerdings sind Rezepte zu grundlegenden Themen tendenziell weiter vorn im Buch angeordnet als Rezepte zu fortgeschrittenen Themen. Persönlich würde ich Ihnen also raten, das Buch von vorn bis hinten durchzuarbeiten. Damit ist sichergestellt, dass Ihnen nichts Wichtiges entgeht und Ihnen für spätere Rezepte kein Wissen aus vorherigen Rezepten fehlt.

Als Kochbuch soll das Buch natürlich vor allem schnell für einen konkreten Anwendungsfall die entsprechende Lösung liefern. Es spricht also auch nichts dagegen, die Rezepte nach Bedarf durchzuarbeiten. Mit den sprechenden Rezept-Überschriften und dem Index sollten Sie schnell die entsprechende Lösung für eine konkrete Problemstellung finden.

Zu guter Letzt soll das Buch natürlich auch als Nachschlagewerk dienen, das Sie immer wieder gern aus dem Regal ziehen, um Wissen bei Bedarf aufzufrischen. Genauso, wie ich das selbst noch heute immer wieder mit den oben genannten Klassikern mache.

Danksagung


Am allermeisten möchte ich wie immer meiner Frau und meinen Kindern danken für ihre Geduld und Unterstützung während der Zeit, die ich an diesem Buch gearbeitet habe. Auch wenn ich dieses Mal versucht habe, das Schreiben in die sehr frühen Morgenstunden und sehr späten Abendstunden zu legen, bin ich dankbar für die Zeit, die sie mir hierfür gegeben haben.

Außerdem bedanke ich mich bei meinem Lektor Stephan Mattescheck für die wie immer sehr...

Erscheint lt. Verlag 28.8.2019
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Mathematik / Informatik Informatik Web / Internet
ISBN-10 3-8362-6455-2 / 3836264552
ISBN-13 978-3-8362-6455-6 / 9783836264556
Haben Sie eine Frage zum Produkt?
Wie bewerten Sie den Artikel?
Bitte geben Sie Ihre Bewertung ein:
Bitte geben Sie Daten ein:
EPUBEPUB (Wasserzeichen)
Größe: 5,6 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Entwicklung von GUIs für verschiedene Betriebssysteme

von Achim Lingott

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
39,99
Das Handbuch für Webentwickler

von Philip Ackermann

eBook Download (2023)
Rheinwerk Computing (Verlag)
49,90