Die Serverwelt von Node.js
Von Manuel Rauber
()
Über dieses E-Book
Mehr von Manuel Rauber lesen
Expertentipps zu Angular: Neuerungen in Angular 6, Umgang mit Microservices, Performanz und UX-Design Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnlich wie Die Serverwelt von Node.js
Titel in dieser Serie (100)
Einstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Executive Briefing Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Strategie und Planung Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Technologiegrundlagen Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenZend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenUX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5JavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenC++: Kurzportträt einer zeitlosen Sprache Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Management Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenWebentwicklung mit dem Play Framework Bewertung: 0 von 5 Sternen0 BewertungenBPM: Strategien und Anwendungsfälle Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Einstieg in TypeScript: Grundlagen für Entwickler Bewertung: 0 von 5 Sternen0 BewertungenServer-Infrastrukturen mit Microsoft Windows Server Technologien: Alle Themen für das Microsoft Seminar und die Zertifizierungsprüfung MOC 20413 Bewertung: 0 von 5 Sternen0 BewertungenAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Bewertung: 0 von 5 Sternen0 BewertungenSharePoint Kompendium - Bd. 16 Bewertung: 0 von 5 Sternen0 BewertungenVue.js für alle: Wissenswertes für Einsteiger und Experten Bewertung: 0 von 5 Sternen0 BewertungenSchritt für Schritt: Installation von Windows 10 im Netzwerk: Schnell und effektiv mit den Windows Server Bereitstellungsdiensten. eBook Edition Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenDocker: Webseiten mittels Containerarchitektur erstellen Bewertung: 3 von 5 Sternen3/5Windows PowerShell: Grundlagen & Scripting-Praxis für Einsteiger – Für alle Versionen Bewertung: 0 von 5 Sternen0 BewertungenJavaScript und Ajax: Das Praxisbuch für Web-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenCross-Plattform-Entwicklung mit HTML und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenASP.NET Core: Eine Einführung Bewertung: 0 von 5 Sternen0 BewertungenNext Level JavaScript: Schlagworte Bewertung: 0 von 5 Sternen0 BewertungenHTML5, JavaScript und jQuery: Der Crashkurs für Softwareentwickler Bewertung: 2 von 5 Sternen2/5Eclipse SmartHome und Smart Office: Intelligente Lösungen in der Heimautomation Bewertung: 0 von 5 Sternen0 BewertungenLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 BewertungenClusterbau: Hochverfügbarkeit mit Linux Bewertung: 0 von 5 Sternen0 BewertungenVue.js kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMicrosoft Azure: Cloud Entwicklung für lokale Applikationen Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Programmierung kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenProgressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Bewertung: 0 von 5 Sternen0 BewertungenAndroid mit Arduino™ Due: Steuern Sie Ihren Arduino™ mit einem Android-Gerät Bewertung: 5 von 5 Sternen5/5PowerShell – kurz & gut: Für PowerShell 7 und Windows PowerShell 5 Bewertung: 0 von 5 Sternen0 BewertungenJava FX - Embedded Bewertung: 0 von 5 Sternen0 BewertungenDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Bewertung: 1 von 5 Sternen1/5Spring Boot und Spring Cloud Bewertung: 5 von 5 Sternen5/5Windows Server 2012 R2 - Der schnelle Einstieg Bewertung: 0 von 5 Sternen0 BewertungenKompaktkurs C# 7 Bewertung: 0 von 5 Sternen0 BewertungenMicroservices: Der Hype im Realitätscheck Bewertung: 0 von 5 Sternen0 BewertungenJava – die Neuerungen in Version 9 bis 12: Modularisierung, Syntax- und API-Erweiterungen Bewertung: 0 von 5 Sternen0 Bewertungen
Vernetzung für Sie
Mach's einfach: Erste Schritte mit der Smart-Home-Programmierung: Einstieg in die Hausautomation mit Node-RED Bewertung: 0 von 5 Sternen0 BewertungenDas große inoffizielle FRITZ!Box Handbuch: Mobile Geräte einbinden: iPhone, iPad, Android Bewertung: 0 von 5 Sternen0 BewertungenErste Schritte: Eigene IoT-Lösungen mit dem ESP32: Mikrocontroller, Internet und PC Bewertung: 0 von 5 Sternen0 BewertungenHeimnetzwerke XL-Edition: DSL/WLAN/PC/Handy/Drucker & Co. Bewertung: 0 von 5 Sternen0 BewertungenAdministrator Praxis - Kleine Windows Netzwerke Bewertung: 0 von 5 Sternen0 BewertungenAuslaufmodell Mensch?: Mythos und Wirklichkeit der Künstlichen Intelligenz Bewertung: 0 von 5 Sternen0 Bewertungen3D-Druck für Anspruchsvolle: Mit dem Ultimaker perfekte Werkstücke erstellen Bewertung: 0 von 5 Sternen0 BewertungenopenHAB: Automatisiertes Heim - Teil 1 Bewertung: 4 von 5 Sternen4/5MQTT im IoT: Einstieg in die M2M-Kommunikation Bewertung: 0 von 5 Sternen0 BewertungenFRITZ!Box: Konfigurieren - Tunen - Absichern Bewertung: 0 von 5 Sternen0 BewertungenHeim-Netzwerke: Netzwerktechnik • High-Speed-Internet • Arbeiten im Heimnetz Bewertung: 0 von 5 Sternen0 BewertungenopenHAB: Automatisiertes Heim - Teil 2 Bewertung: 4 von 5 Sternen4/5Heim-Netzwerke Tipps & Tools: Netzwerkverbindungen • Zentraler Datenspeicher • Mediastreaming Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Die Serverwelt von Node.js
0 Bewertungen0 Rezensionen
Buchvorschau
Die Serverwelt von Node.js - Manuel Rauber
GmbH
1 JavaScript als alternative Möglichkeit der Backend-Entwicklung
Mit dem Wort JavaScript verbinden viele Entwickler die typische jQuery-Syntax $(...) und immer noch Spaghetticode. Der war früher an der Tagesordnung, und am Ende des Arbeitstags hatte man eine Sache gewiss: große, nicht überschaubare Dateien mit vielen Zeilen Code. Gut, dass das für unseren JavaScript-Interpreter im Browser keine Rolle spielt. Aber wie sieht das auf dem Server aus? Seit Node.js ist JavaScript auch auf dem Server nutzbar, sodass moderne Applikationen wie Web-APIs mit Datenbankzugriff und Token Authentication entwickelt werden können. Das beste daran? Ohne Spaghetticode.
Seit Jahren wird JavaScript auf dem Client, sprich im Browser, eingesetzt. Erste, anfänglich kleine Schritte, wurden meist mit dem Aus- oder Einblenden von Elementen auf einer Webseite gemacht. Hatte sich dieses Wissen gefestigt, ging man dazu über, mit Asynchronous JavaScript and XML (Ajax) dynamisch Webseiten zu entwickeln und Daten on the fly nachzuladen, anstatt die Webseite erneut über einen Server auszuliefern. Heutzutage werden Enterprise-Business-Anwendungen als Single Page Applications (SPA) mit modernen Frameworks wie Angular 2 oder React entwickelt, die vollständig auf dem Client ablaufen und nur noch benötigte Daten über eine leichtgewichtige und Use-Case-optimierte HTTPS-Schnittstelle nachladen.
Als .NET-Entwickler hat man beim Stichwort HTTPS-Schnittstelle sicher moderne Technologien wie ASP.NET Web API oder ASP.NET Core 1.0 MVC vor Augen – grundsolide und erprobte Technologien, die seit Jahren im Einsatz sind oder es sein werden. Mit C# oder wahlweise VB.NET werden Server entwickelt, die eine HTTPS-basierte Schnittstelle bereitstellen, die von einem JavaScript-Client oder beliebigen anderen Clienttechnologien konsumiert werden können. Wenn Sie bisher in der Rolle des JavaScript-Entwicklers waren, sind Sie bestens für die Entwicklung auf der Clientseite gerüstet. Doch wenn Sie in Richtung Server blicken, haben Sie sicher bemerkt, dass Sie sich in andere Technologien einarbeiten müssen, bisher jedenfalls.
Serverseitiges JavaScript
Mit Node.js [1] kann JavaScript nun auch auf der Serverseite ausgeführt werden. Node.js ist eine JavaScript-Runtime, die auf Google Chromes V8 JavaScript Engine (V8) aufbaut. Das bedeutet, dass alles auf der Serverseite genutzt werden kann, was der Browser Chrome an JavaScript versteht. Da Node.js eine Cross-Plattform-Anwendung ist, kann es auf Windows, Linux und Mac OS X genutzt werden. Durch die stetige Weiterentwicklung von Node.js wird auch immer wieder eine aktuelle Version von V8 integriert.
Zum Redaktionsschluss waren die Versionen 4.4.0 und 5.8.0 die jeweils aktuellsten von Node.js. Gerade Major-Versionsnummern bezeichnen eine Long-Term-Support-(LTS-)Version von Node.js, während eine ungerade Major-Versionsnummer die jeweils aktuellste stabile Entwicklungsversion darstellt. In LTS-Versionen werden keine neuen Features integriert, aber Bug Fixes und Sicherheitsupdates eingespielt. Sie richten sich damit speziell an Unternehmen, die eine auf längere Zeit stabile Version von Node.js im Produktionsumfeld benötigen. Node.js 4.4.0 integriert dabei V8 in Version 4.5 (was auch Chrome 45 entspricht), während Node.js 5.9.0 die Version 4.6 integriert.
Seitens Microsoft gibt es die Bestrebung, ChakraCore als alternative Runtime in Node.js zur Verfügung zu stellen. ChakraCore ist die Microsoft-eigene JavaScript-Engine, die für den neuen Browser Edge entwickelt wurde.
Im Jahr 2015 wurde die Node.js Foundation gegründet, die es sich unter anderem zur Aufgabe gemacht hat, die Weiterentwicklung von Node.js voranzutreiben. Als Mitglieder gehören ihr zum Beispiel Microsoft, PayPal oder Intel an. Ähnlich wie die Apache Foundation nimmt die Node.js Foundation Communityprojekte auf, um deren Weiterentwicklung zu stärken.
Event Loop
Die Stärken von Node.js liegen in einem asynchronen, eventbasierten I/O-API, also der Anbindung von externen Ressourcen. Dazu zählen Ressourcen wie das Dateisystem, Netzwerke oder Datenbanken. Dafür stellt Node.js eine Single-threaded-Architektur zur Verfügung. Das bedeutet, dass zu jedem Zeitpunkt innerhalb einer Node.js-Anwendung nur ein Thread zur Bearbeitung zur Verfügung steht. Diese Architektur wurde bewusst gewählt, da Multi-Threading einen besonderen Anspruch an die Anwendungsentwickler stellt. In einer Multi-threaded-Umgebung müssen wir uns speziell um die Threadsicherheit, also den koordinierten Zugriff auf eine Ressource mit parallelen Threads, kümmern. Auch die Fehlersuche wird in solch einer Umgebung erschwert. Der Architekturansatz von Node.js hilft uns dabei, dass wir uns um solche Themen keine Gedanken machen müssen.
Abbildung 1.1: Node.js Event Loop (frei nach einer Illustration von Ilya Petrov [2])
Um das erwähnte asynchrone I/O-API zur Verfügung zu stellen, bildet der Event Loop von Node.js das Herzstück (Abbildung 1.1).