Skip to main content

Backend Development

Strukturierte Verwaltung von Daten.

Backend-Development ist die Entwicklung von Datenbanken, Client-Server-Anwendungen, Microservices, Webanwendungen und Diensten, die auf Webservern im Hintergrund laufen.

Wir konfigurieren Drupal-Systeme nach Kundenbedarf, entwickeln individuelle Module für spezielle Anforderungen und verbinden Drupal-Webseiten mit externen Systemen, sofern wir deren Daten benötigen.
Portrait von Manuel Moritz-Schliesing
Manuel Moritz-Schliesing
Verantwortlich für Software Architektur, Entwicklung und DevOps

Das CMS als Datenlieferant - Backend-Entwicklung braucht kein Layout

Inhalte und deren Darstellung in verschiedenen Ausgabekanälen (Website, App, usw.) behandeln wir getrennt, um eine maximale Flexibilität sicherzustellen. Inhalte speichern wir strukturiert ab und geben ihnen damit eine Semantik. Über die konkrete Nutzung und Darstellung entscheidet der Ausgabekanal selbst und ohne spezifisches Wissen des Backends. Denn wer weiß denn heute schon, wie ein Inhalt in zwei Jahren publiziert werden soll?

Drupal kann als so genanntes Headless CMS genutzt werden und Inhalte über definierte Schnittstellen bereitstellen.

Backend-Entwicklung

Drupal Sitebuilding und Modul-Entwicklung

Im Drupal-Kontext nennt man Konfiguration und individuelle Anpassung eines neu installierten Systems „Sitebuilding“. Diese zumeist erste Tätigkeit in einem Website-Projekt erfordert tiefes Verständnis der Drupal-Konzepte und der Art der zu speichernden Daten.

Obwohl alle diese Tätigkeiten durch den Sitebuilder komplett im Backend ausgeführt werden können, gehen wir noch ein Stück weiter: damit einmal erstellte Einstellungen bei einem Update nicht überschrieben werden und um identische System mehrfach installieren zu können (Staging, Test, Production, usw.) verwalten wir diese also Code.

Jede Anpassung resultiert in einem Code-Skript, welches jederzeit in neue System eingespielt werden kann. Bei unseren vollautomatisierten Deployment-Prozessen (Stichwort: CI/CD) übernimmt diese Aufgabe gar kein Mensch mehr sondern der Agent und die Pipeline.

Fullstack Entwicklung

Objektorientierte Programmierung mit PHP

Drupal basiert auf dem Symphony-Framework und ist daher komplett in PHP entwickelt. Anpassungen bzw. die Entwicklung von neuen Modulen erfolgt daher mittels PHP - eine Sprache mit langer Historie im Web-Umfeld, die konsequent weiterentwickelt und verbessert wird.

Illustration Software

Die Basics

Objektorientierte Programmierung mit PHP bedeutet:

Abstraktion

Ein Objekt kann erledigen, seinen Zustand berichten und ändern und mit den anderen Objekten im System kommunizieren ohne die konkrete Implementierung offen zu legen.

Klassen

Attribute bzw. Eigenschaften legen die innere Struktur eines Objekts fest, Methoden bestimmen sein Verhalten.

Kapselung

Implementierungsdetails werden verborgen und auf die interne Datenstruktur kann nur über definierte Schnittstellen zugegriffen werden.

Persistenz

Objektvariablen existieren, solange die Objekte vorhanden sind und „verfallen“ nicht nach Abarbeitung einer Methode.

Polymorphie

Variablen können unterschiedliche Datentypen annehmen und verschiedene Objekte können auf die gleiche Nachricht unterschiedlich reagieren.

Vererbung

Eine abgeleitete Klasse erbt die Methoden und Attribute ihrer Basisklasse und kann auch darauf zugreifen. Abgeleitete Klasse können neue Bestandteile hinzufügen oder vorhandene überlagern.

Systeme verbinden über APIs

Eine API dient dem Austausch und der Verarbeitung von Daten zwischen verschiedenen Webseiten, Programmen und Anbietern.

Öffentliche APIs

Stellen Daten einem breiten und eher anonymen Publikum zur Verfügung. Nach einer einfachen Registrierung können Daten mittels API-Schlüssel abgerufen werden. Typische Vertreter sind Wetterdaten, Fahrplaninfos, usw.

Partner-APIs

Ähnlich wie bei offenen APIs sollen Partner-APIs die Kommunikation zwischen einem Unternehmen
und seinen (externen) Benutzern ermöglichen. Da die Nutzer hier Geschäftspartner und die Daten eher
sensibler Natur sind, wird hier mehr Wer auf Sicherheit bei der Registrierung und Übertragung gelegt.

Interne APIs

Diese oft auch als private APIs bezeichnete Schnittstellen werden vor externem Zugriff verborgen. Ziel
ist hier der Austausch von Informationen zwischen Abteilungen oder Standorten. Auch zentral
gespeicherte Daten, wie bspw. Produktdaten können auf diese Weise ausgeliefert werden, um Infos auf
der Webseite anzuzeigen.

Es gibt verschiedene Arten von APIs, die je nach Architektur und Protokoll die individuellen Anforderungen zu erfüllen.
Portrait von Simon
Simon Hagenberg
Backend Developer

Leichtgewichte und flexible Infrastruktur für Webseiten

Docker ermöglichst die leichtgewichtige Virtualisierung in s.g. Containern und vereinfacht so die Bereitstellung von Anwendungen (Webseiten, Datenbanken, Such-Engines, Tracking-Tools, uvm.). Die erzeugten Container enthalten alle benötigten Pakete und lassen sich einfach als kompakte Dateien transportieren und installieren.

Daten mit Semantik speichern und flexibel abrufen

Ein relationales Datenbankmanagementsystem (RDBMS) wie MySql oder MariaDB dient zur Erstellung, Pflege und Verwaltung von relationalen Datenbanken mittels SQL (Structured Query Language). Je nach Entwicklungsumgebung wird der direkte Zugriff durch O/R-Mapper abstrahiert und ermöglicht komfortableres und sichereres Arbeiten mit einer Datenbank.

Komm ins Team

Bist Du auf der Suche nach einem Job?

CI/CD

Vom Entwickler zum Kunden.

Continuous Integration und Continuous Delivery sind Verfahren zur Softwareverteilung, die von Entwicklungsteams verwendet werden, um Codeänderungen häufig und zuverlässig bereitzustellen.

Continuous Integration

Entwickler führen regelmäßig Commits in ein gemeinsam genutztes Repository durch. Dafür wird bspw. das Versionskontrollsystem Git verwendet, welches u.a. durch Gitlab, Github, Bitbucket oder Azure DevOps bereitgestellt wird. Bevor ein Commit akzeptiert wird, können automatisch weitere Prüfungen und Tests durchgeführt werden, um die Code-Qualität sicher zu stellen.

Continuous Delivery

Manuelle und dadurch fehleranfällige Schritte, mittels denen ein Build von Software für die Produktion durchgeführt  wird, übernimmt ein automatisierter Prozess - die s.g. Pipeline. Software Agents innerhalb der Pipeline können auch hier weitere Aufgaben ausführen, wie bspw. die parallele Installation auf mehreren Systemen (Staging, Test, usw.) oder automatisierte Tests, die bei Versagen die Publizierung auf Production verhindern.

Linie mit Drupal 9 Logo

Tech Stack

Professionelle Resultate durch professionelles Tooling.

Docker

​​​Docker kümmert sich um die Bereitstellung von Anwendungen, indem diese in Containern virtualisiert und isoliert betrieben werden. Ein Container enthält alle nötigen Pakete, ist leichtgewichtig und kann einfach transportiert und installiert werden.

DDEV

Mit DDEV lässt sich innerhalb weniger Minuten eine lokale PHP-Entwicklungsumgebung einrichten, um Docker lokal für die Entwicklung zu nutzen.

PHP

PHP ist eine Skriptsprache zur Erstellung dynamischer Webseiten oder Webanwendungen, die seit knapp 30 Jahren erfolgreich im Einsatz ist. Seit August 2022 kann die neuste Version 8.1.9 genutzt werden.

Drupal Wordmark Logo
MySQL Logo
Docker
Docker Logo
Gitlab Logo
Netlify Logo

Backend-Frameworks

Solider Unterbau einer Enterprise-Website.

Symfony

Symfony ist ein PHP-Framework und derzeit der Standard für die Entwicklung von Webseiten, Onlineshops und Content Management Systemen

Twig

Twig ist die leistungsfähige Template-Engine Drupal, mit deren Hilfe wir Layouts individuell umsetzen können. Der Vorteil für den Einsatz einer Template-Engine liegt auf der Hand. Layout wird unabhängig von der Drupal-Entwicklung durch unser Frontend-Team umgesetzt. Beim Erstellen der Templates liegt der Fokus somit komplett auf der Umsetzung eines perfekten responsiven Layouts. Platzhalter markieren die Stellen, an denen später dynamische Inhalte integriert werden sollen. Sobald ein fertiges Template im Drupal-CMS integriert wird, werden „echte“ Inhalte korrekt und im gewünschten Layout ausgegeben. Auch spätere Änderungen an der Logik sind einfach möglich, ohne sich Gedanken über das Layout machen zu müssen.

Noch Fragen?

Dann sollten wir uns unterhalten.