Der Weg zu performantem NodeJS –Do’s and Dont‘s

JavaScript ist in der heutigen Zeit eine der meistgenutzten Programmiersprachen. Mit dem Wachstum des Internets und der immer komplexeren Funktionalität von Webseiten ist JavaScript aus Sicht eines Webentwicklers nicht mehr wegzudenken. Im Jahr 2009 entwickelte Ryan Dahl NodeJS, um einen Webserver bereitzustellen, welcher viele parallele Anfragen gleichzeitig verarbeiten kann, da er mit der Performance von einem Apache-Webserver diesbezüglich unzufrieden war. Als Basis wählte er aufgrund des besonderen ereignisgetriebenen Systems JavaScript, um asynchron Anfragen abarbeiten zu können. Die damit einhergehenden technischen Anpassungen bringen nun auch einige Änderungen mit sich, die es zu beachten gilt, wenn man NodeJS anstelle von reinem JavaScript im Browser programmiert. Bei NodeJS handelt es sich nicht um eine Programmiersprache, sondern vielmehr um ein Framework, das es ermöglicht JavaScript oder eine JavaScript-Engine auf dem Desktop oder einem Server alleinstehend auszuführen.

Das Ziel der vorliegenden Arbeit ist es, den Aufbau von NodeJS zu analysieren und die wichtigsten Punkte bezüglich der Performance solcher Anwendungen herauszuarbeiten. Weiterhin sollen Möglichkeiten zur Optimierung von NodeJS-Anwendungen zusammengetragen und analysiert werden, um diese dann ggf. in einem Produktivsystem einzusetzen.

NodeJS Architektur - Übersicht
NodeJS Architektur – Übersicht

Kostenloser Download der gesamten Praxisarbeit

Standardisierung der JavaScript Architektur für SAP-Commerce-Cloud-Systeme

Je größer ein Projekt ist, desto wahrscheinlicher ist es auch darüber den Überblick zu verlieren. Ohne Überblick ist es wesentlich schwerer Fehler zu identifizieren und zu beheben, aber auch neue Inhalte sauber hinzuzufügen. Um ein Projekt übersichtlich zu halten, müssen seine Bestandteile gut strukturiert sein, so auch der JavaScript Code. Die Aufrechterhaltung von wohlstrukturiertem Code kostet viel Zeit, wenn es keine festen Vorgaben gibt. So muss der Entwickler bei jeder Änderung viel Zeit damit verbringen die Lösung für sein Problem sauber zu implementieren. Aus Zeitmangel wird jedoch vereinzelt nur so weit gearbeitet, bis die Funktionalität sichergestellt wurde. In vielen Fällen heißt das, dass auf Sauberkeit und Strukturiertheit des Codes wenig Wert gelegt wird.

Hier kommt eine Architektur ins Spiel. Durch eine feste Vorgabe, wie Probleme zu lösen sind, wird der Zeitaufwand eliminiert, der sonst in die Planung der Lösung fließen würde. Außerdem kann garantiert werden, dass der Code einheitlich strukturiert ist. So können auch bei möglichen Personalwechseln andere Entwickler ohne viel Einarbeitung den Code verstehen.

Da diese Architektur, nachdem sie einmal eingeführt ist, nur sehr unangenehm wieder zu ersetzen ist, sollte sie von Beginn an optimal ausgelegt sein. So ist es Ziel dieser Arbeit eine Architektur zu entwickeln, die in SAP-Commerce-Cloud Systemen optimal einsetzbar ist.

Schema des Observer Patterns
Schema des Observer Patterns

Kostenloser Download der gesamten Praxisarbeit

Konzeption und Implementierung eines Community- und Redaktionssystems (2010)

Die Informationsflut in der heutigen Gesellschaft ist enorm. Durch das Internet werden Nachrichten weltweiter Vorgänge in Sekunden zu Orten in der ganzen Welt transportiert. Für Internetanbieter von Informationsportalen ist eine aktive Community dabei sehr wichtig, um aktuelle Nachrichten zu verbreiten, Fragen zu klären und auch regionale Informationen einzubeziehen. Ein sehr gutes Beispiel für eine Informationscommunity ist der Microblogging-Dienst Twitter. Im arabischen Frühling wurde das Tool von betroffenen Menschen genutzt, um Informationen in die weite Welt zu tragen. Die Informationsflut zu vielen Themen wie auch zu diesem Thema ist sehr groß und kann nur schwer überblickt werden.
Die dotSource startete zu einem ähnlichen Zweck das Portal Newskraft.de. Durch ein erweitertes Community- und Redaktionssystem sollten regionalspezifische Nachrichten geordnet und zugänglich werden, denn das größte Problem ist die Masse an Informationen und die damit verbundene fehlende Übersichtlichkeit. So wurde ein Tool entwickelt um Nachrichten nach Regionen, Städten und Rubriken zu ordnen.

 

ERD des Nachrichtensystems

 
Die hier beschriebene Arbeit beschreibt prozessorientiert die Weiterentwicklung der Plattform Newskraft.de. Nachdem anfänglich einige wichtige Begriffe, wie zum Beispiel das Workflowmanagement, erklärt und der bisherige Entwicklungsstand erläutert werden, folgen weitere Erklärungen zum JavaScript Framework JQuery. Diese dienen dazu Marktbetrachtungen von anderen Newsportalen unter Ajax-basierten Gesichtspunkten zu bearbeiten. Unter Berücksichtigung verschiedener Gesichtspunkte wird dann ein geeignetes Projektvorgehen bestimmt und ein Pflichtenheft erstellt. Daraufhin werden verschiedene Implementierungsentwürfe zusammengefasst dargestellt und einige Funktionalitäten und Komponenten erläutert. Zum Abschluss des Prozesses werden die Testvorgänge beschrieben und einzelne Probleme im Vorgang aufgezeigt. Zusammenfassend wird dann der Projekterfolg evaluiert und ein Ausblick auf mögliche fortführende Entwicklungen wiedergegeben.

Kostenloser Download der gesamten Diplomarbeit