Entwicklung

Hier finden Sie Beiträge rund um das Thema Entwicklung.
Kategoriesuche
Verwandte Themen

Statische Code-Analyse in der CI/CD Pipeline eines Salesforce-Projektes

Beispielhafte Vorgänge in einem Runner für eine Pipeline
Beispielhafte Vorgänge in einem Runner für eine Pipeline

Die stetig wachsende IT-Branche bringt nicht nur innovative Softwarelösungen, sondern auch komplexere Schwachstellen mit sich. Um Sicherheitsrisiken frühzeitig zu erkennen und hohe Kosten durch späte Analysen zu vermeiden, fokussieren sich IT-Unternehmen auf die frühzeitige Erkennung von Schwachstellen im Entwicklungsprozess.

In dieser Arbeit wurde die Integration von Static Application Security Testing (SAST), einer Methode zur statischen Code-Analyse, in eine CI/CD-Pipeline untersucht. Ziel war es, Salesforce-Projekte durch die frühzeitige Identifikation unsicherer Code-Muster sicherer zu gestalten.

Nach einer Analyse und Auswahl geeigneter SAST-Tools unter Berücksichtigung spezifischer Anforderungen der dotSource SE, wurde ein Tool implementiert und evaluiert. Der erstellte Konzept-Job, der mit Docker arbeitet, ermöglicht eine schnelle Durchführung von Sicherheitstests.

Zukünftig soll das Konzept weiterentwickelt werden, um über ein YAML-Template die Anwendung für weitere Projekte zu vereinfachen. Auch die Visualisierung der Ergebnisse soll optimiert werden. Die Arbeit stellt einen wichtigen Schritt dar, um die Cybersicherheit innerhalb der DevOps-Prozesse zu stärken, und legt die Basis für weitere Maßnahmen wie die Integration dynamischer Sicherheitstests.

Migrationkonzept einer Salesforce B2B

beitrag_migrationskonzept_salesforce_b2b

Die IT-Branche wandelt sich ständig: Neue Technologien entstehen, bestehende entwickeln sich weiter. Unternehmen müssen Schritt halten, was oft teuer und zeitintensiv ist.

Ein aktuelles Beispiel ist die Umstellung von Salesforce Aura Runtime auf die modernere Lightning Web Runtime (LWR) für digitale Erlebnisse. Ein Kunde von dotSource GmbH hat deshalb entschieden, seinen B2B-Shop auf die LWR zu migrieren.

Das Ziel dieser Arbeit: Ein Migrationskonzept zu entwickeln, das eine reibungslose Umstellung einer bestehenden Salesforce-Storefront auf die LWR ermöglicht. Dabei wird die Funktionalität der Komponenten gewährleistet, ohne auf spezifische Datenmigrationen einzugehen.

Zunächst werden Salesforce, Aura und LWR mit ihren Vor- und Nachteilen erklärt. Danach folgt die Analyse des aktuellen Shops und die Konzeptentwicklung. Das Konzept wird an einer Shop-Komponente getestet und abschließend evaluiert.

Optimierung des Registrierungsprozesses für Salesforce B2B

Mögliche Benutzeroberfläche des Kontakt-Registrierungsformular

Die Digitalisierung hat E-Commerce für Unternehmen sehr wichtig gemacht. Immer mehr Menschen in Deutschland kaufen online ein, und die Zahl der Nutzer soll weiter steigen. Das bringt für Unternehmen mehr Arbeit bei der Verwaltung ihrer Onlineshops mit sich.

Ein besonders wichtiger Punkt ist der Registrierungsprozess. Er ist oft die erste direkte Interaktion eines Kunden mit dem Shop. Wenn der Prozess kompliziert oder fehlerhaft ist, kann das zu hohen Kosten und dem Verlust von Kunden führen.

In dieser Projektarbeit wird der Registrierungsprozess eines Salesforce B2B Shops untersucht. Ziel ist es, Schwachstellen zu finden und den Prozess zu verbessern. Das neue Konzept soll den Prozess einfacher und automatisierter machen. Anschließend werden die Änderungen getestet, um sicherzustellen, dass alles reibungslos funktioniert.

Entwurf und prototypische Umsetzung eines decoupled Frontend für einen Onlineshop auf Basis von Salesforce B2B Commerce

In der heutigen digitalen Welt sind Online-Shops unverzichtbar für Unternehmen aller Größen und Branchen. Eine erfolgreiche Online-Präsenz erfordert eine leistungsstarke und benutzerfreundliche Benutzeroberfläche.

Entwickler stehen vor der Herausforderung, die beste Lösung für ihre Projekte aus einer Vielzahl von Möglichkeiten auszuwählen. Die Integration in andere Systeme gestaltet sich oft schwierig aufgrund der Vielfalt von Programmiersprachen und Plattformen.

Daher ist die Verwendung einer Schnittstelle für benötigte Daten oft die bessere Wahl, um die Unabhängigkeit von verschiedenen Plattformen zu gewährleisten. Ein Ansatz zur Erstellung eines unabhängigen Online-Shops ist die Nutzung eines decoupled Frontends.

Decoupled Frontends trennen die Benutzerinteraktion und -darstellung von der Verarbeitung von Anfragen und Daten. Dadurch wird die Anwendung flexibler und wartbarer gestaltet.

In dieser Arbeit wird der Entwurf und die prototypische Umsetzung eines decoupled Frontends für einen Online-Shop auf Basis von Salesforce B2B Commerce behandelt.

Konzept
Konzept

Kostenloser Download der gesamten Praxisarbeit

GraphQL in einer Microservice-Architektur

Die steigende Komplexität von Softwaresystemen erschwert das Design und die Integration von Schnittstellen, die traditionell auf REST basieren. Die zunehmende Beliebtheit von GraphQL als Alternative zu REST, insbesondere in komplexen Microservicearchitekturen, ermöglicht eine vereinfachte API-Entwicklung. Unternehmen unterschiedlicher Branchen setzen GraphQL ein, um komplexe Prozesse abzubilden und die Entwicklung zu erleichtern. Dennoch zeigt GraphQL in solchen Projekten verschiedene Schwächen auf.

Diese Arbeit untersucht die Integration externer GraphQL-APIs in eine eigene Microservicearchitektur unter Verwendung von Apollo Federation. Dabei wird auch das „N+1“-Problem betrachtet und eine Lösung im Rahmen verteilter Graphen angestrebt. Die Funktionsweise von GraphQL wird erläutert, gefolgt von einer Beschreibung des aktuellen Einsatzes von GraphQL in verschiedenen Unternehmen, um Forschungsfragen zu identifizieren. Anschließend wird eine Lösung in Form eines Microservices beschrieben und hinsichtlich Machbarkeit und Performance evaluiert. Diese Arbeit richtet sich an Systemarchitekten und Entwickler mit grundlegenden Kenntnissen in Software- und Systemarchitekturen.

Ist-Stand - Statische Query
Ist-Stand – Statische Query

Kostenloser Download der gesamten Bachelorarbeit

Reduzierung der Laufzeit eines Salesforce Deployment Pipeline

In einer sich immer mehr digitalisierenden Gesellschaft ist es vor Allem für IT-Unternehmen wichtig, sich stetig weiterzuentwickeln, um mit der wachsenden Konkurrenz mithalten zu können und kompetitiv zu bleiben.
Entwicklungsprozesse müssen also effizienter gestaltet werden, um Software mit hoher Qualität regelmäßig bereitstellen zu können. Entwicklungsteams sollen neue Methoden der Zusammenarbeit lernen, um Kundenprojekte koordiniert und systematisch umsetzen. Das stetige Lernen und Weiterbilden ist Alltag eines modernen Entwicklers.

Da ein Entwicklungsprozess viele verschiedene Teilaspekte von der Konzeptionierung bis zum fertig ausgelieferten Produkt besitzt, kann ein solcher Prozess auch an vielen Stellen optimiert und effizienter gestaltet werden. Methoden der agilen Softwareentwicklung beschleunigen den Implementierungsprozess, Modelle und Prototypen unterstützen die Anschaulichkeit von Konzepten, um direkte Rückmeldung vom Kunden bekommen zu können. Doch auch der Prozess der Bereitstellung von Änderungen und neuen Features kann in vielen Punkten durch Automatisierung und  weitere  Methoden  verbessert  werden. Dazu dienen DevOps, CI (Continuous Integration) und CD (Continuous Delivery und Continuous Deployment). 

Entwurf der neuen Pipeline
Entwurf der neuen Pipeline

Kostenloser Download der gesamten Praxisarbeit

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

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

Erstellung einer Java Applikation zur automatisierten Erstellung von Projekten im GitLab und Jenkins Jobs

Softwareprojekte werden größer, komplexer und immer mehr Entwickler arbeiten zusammen an einem Projekt. Um eine strukturierte sowie geordnete Entwicklung zu gewährleisten, muss es möglich sein, Änderungen von Quellcode und Dokumenten zu erfassen und rückgängig zu machen. Um diese Anforderungen zu erfüllen, setzt man sogenannte Versionskontrollsysteme ein. Die dotSource GmbH verwendet als Versionskontrollsystem GitLab, um ihre Projekte zu strukturieren und die Entwickler zu koordinieren.

Die Erstellung der Projekte im GitLab für sogenannte Functions erfolgt derzeit manuell auf einem aufwendigen und umständlichen Weg. Um schneller und effektiver arbeiten zu können, soll dieser Vorgang automatisiert werden. Eine Möglichkeit eine Automatisierung mittels einer Applikation zu realisieren, ist die REST API von GitLab. Mittels dieser Schnittstelle können dann die Funktionalitäten von GitLab von einem externen Programm angesprochen werden, wodurch es wiederum möglich ist, die Schritte zur Erstellung einer Function zu automatisieren.

In dieser Arbeit soll zum einen der derzeitige Erstellungsprozess für die Functions genauer betrachtet und zum anderen wird die Entwicklung der Applikation zur Automatisierung dieses Prozesses genauer analysiert werden. Nach dieser Betrachtung soll ein Fazit gezogen werden, ob die Entwicklung des Programmes gelungen ist und ob das Programm eine Zeit- und Aufwandsersparnis für die Entwickler mit sich bringt.

Nutzer Authentifizierung
Nutzer Authentifizierung

Kostenloser Download der gesamten Praxisarbeit