JavaScript

Hier finden Sie Beiträge rund um das Thema JavaScript.
Kategoriesuche

Integration einer Lösung für die individuelle Anpassung von Produkten mit dem ZAKEKE Produktkonfigurator in Salesforce Commerce

In der modernen Zeit gibt es immer mehr einzigartige und branchenspezifische Arten, Softwarelösungen zu entwickeln. Ein Programmierer hat viele unterschiedliche Möglichkeiten, eine Problemstellung anzugehen und es ist an ihm zu wählen, welche Lösung die Beste für den gegebenen Fall ist. Daraus entstehen immer effizientere und kundenfreundlichere Lösungen für spezielle Anwendungsfälle. Jedoch ist es durch diese große Varianz an Programmiersprachen, Plattformen und Programmierarten nicht immer einfach, zwei bestehende Systeme funktional zusammenzuführen. Deswegen müssen Softwareentwickler heutzutage immer häufiger Schnittstellen zwischen zwei auf verschiedenen Techniken basierenden Anwendungen entwickeln, um einen reibungslosen Datenaustausch zwischen ihnen zu ermöglichen.

Diese wissenschaftliche Arbeit beschäftigt sich mit der Implementierung einer neuen Funktionalität in ein bestehendes Webshopsystem. Dabei wird ein möglicher Lösungsansatz für die Implementierung als Konzept entstehen und technisch umgesetzt werden. Der Durchführung soll eine ausführliche Analyse unterliegen, aus welcher Schlüsse und Erkenntnisse für weitere Projekte im gegebenen Sachzusammenhang gewonnen werden sollen.

Konfiguratorenseite nach der Implementierung
Konfiguratorenseite nach der Implementierung

Kostenloser Download der gesamten Praxisarbeit

Fehlerbehandlung in einer Mikroservicearchitektur – Ein Ansatz aus der funktionales Programmierung

In größeren Programmarchitekturen ist ein gutes Konzept zum Umgang mit Fehlern unabdingbar. In einer produktiven Umgebung eines Kunden sollen die Anwendungen im Falle eines Fehlers nicht den Betrieb der Plattform beeinflussen, indem sie abstürzen oder sogar andere Teile der gesamten Plattform zum Absturz bringen. Im besten Fall gibt die Anwendung eine Fehlermeldung aus, um sie in einem Log zu speichern und arbeitet, ggf. nach einem Neustart, wie gewohnt weiter.

Speziell in Microservicearchitekturen ist es wichtig, dass jede der vielen kleinen Anwendungen stets bereit ist Anfragen zu bearbeiten, da zwischen den Anwendungen sehr viel Kommunikation stattfindet und sie deshalb abhängig voneinander sind. Es ist wichtig, dass über alle Microservices hinweg eine einheitliche Programmstruktur herrscht, die dabei hilft Fehler gänzlich zu vermeiden oder diese elegant zu behandeln.

Bei der Entwicklung solcher Architekturen werden Fehler häufig auf unterschiedliche Art und Weise behandelt. Dabei werden Fehler meistens geworfen, um sie später an anderer Stelle zu behandeln. Das macht es schwer die bestehende Codebasis zu erweitern, Fehler zu finden oder kann zu inkonsistentem Logging führen. Ein Ansatz aus der funktionalen Programmierung soll dabei helfen die Programmlogik noch klarer von den Fehlern zu trennen und eine robustere Codebasis schaffen. Dadurch wird das Logging verbessert und Fehler können effizienter gesucht und behoben werden.

Umsetzung der Hauptfunktion - funktionaler Ansatz
Umsetzung der Hauptfunktion – funktionaler Ansatz

Kostenloser Download der gesamten Praxisarbeit

Evaluation und Umsetzung von Performance-Tests mit Hilfe von CodeceptJS

Das Internet entwickelt sich seit seiner Erfindung unaufhaltsam fort. Jährlich nimmt die Anzahl von Internetanschlüssen und Nutzern weltweit stark zu. Aufgrund der rasant steigenden Verfügbarkeit von schnellen Breitbandverbindungen tolerieren immer weniger Internetnutzer langsam arbeitende Webseiten. Dazu zeigen Studien, dass Absprungraten von Webseitennutzern mit der Dauer von Ladezeiten ansteigen. Dies kann einen potenziellen Umsatzverlust für den Seitenbetreiber bedeuten. Ladezeiten können durch unterschiedliche Faktoren beeinflusst werden. Ein relevanter Faktor bei Onlineshops kann dabei die Anzahl der zeitgleich eintretenden Kunden sein. Zu viele Nutzer können zu einer Überlast des Webservers und somit zu höheren Antwortzeiten führen.

Um solche Probleme frühzeitig zu erkennen, werden Lasttests an Servern durchgeführt, um die Auswirkungen von hohen Nutzerzahlen auf Seitenladezeiten zu messen. Diese Arbeit beschäftigt sich daher mit der Konzeption, Entwicklung und Durchführung von Lasttests unter der Verwendung des Frontend-Testing Frameworks CodeceptJS.

Jedoch war es bislang unbekannt, ob und inwiefern sich Lasttests mit Hilfe dieses Tools umsetzen lassen. Um dieses Ziel zu erreichen, wurde ein Testkonzept aufgestellt, welches alle benötigten Testabläufe definiert. Anschließend wurden Testskripte erstellt, welche anhand eines Benutzermodells Webseitenbesucher simulieren und deren Auswirkungen auf einem Testserver messen. Dieser Versuch konnte aufzeigen, dass es durchaus möglich ist, Lasttests mit CodeceptJS aufzusetzen. Jedoch benötigt es einen hohen Aufwand, alle Funktionalitäten von XLT nachzubilden.

Auslastung des Testsystems bei unterschiedlicher Anzahl von virtuellen Nutzern
Auslastung des Testsystems bei unterschiedlicher Anzahl von virtuellen Nutzern

Kostenloser Download der gesamten Bachelorarbeit

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