Web-Backend-Programmierung

Was ist Web-Backend-Programmierung?

Web-Backend-basierte Softwareanwendungen sind wie Eisberge. Die Programmierung von mobilen Apps, wie z.B. iOS-Programmierung oder Android-Programmierung, bezieht sich auf die direkte Interaktion mit dem Endbenutzer. Dies wird als “Front-End-Programmierung” bezeichnet. Dieser Teil der Anwendung ist für den Benutzer sichtbar. Der größte Teil bleibt aber unsichtbar. Das ist das schwer fassbare und mystische “Backend”. In den meisten wichtigen Anwendungen gibt es viel mehr Backend-Code als Frontend-Code.

Komplexe Apps haben viele Arten von Logik, die im Hintergrund ablaufen und sie funktionieren lassen. Dazu müssen Daten gespeichert und abgerufen werden. Geschäftslogik und Regeln müssen eingehalten und Ergebnisse berechnet werden. All dies geschieht hinter den Kulissen. Der Backend-Entwickler ist derjenige, der dies alles ermöglicht.

API (Application Programming Interface)

Ein Web-Backend ist mit dem Web-Frontend (App oder Website) in Form einer API verknüpft. Das Web-Backend wird auf einem Server ausgeführt und stellt Daten zur Verfügung, beziehungsweise erwartet bei manchen Aufrufen Parameter oder Daten zum abspeichern. Moderne Web-Backends nutzen dazu eine sogenannte Rest-API. Es ist mit einer normalen Webseite zu Vergleichen. Jede Funktion im Backend hat, wie eine Webseite, eine bestimmte Web-Adresse, auch Endpoint genannt, welche von der App aufgerufen wird. Es ist ähnlich, wie wenn Sie im Web-Browser eine URL eingeben. Das Backend gibt dann anstelle des HTML entweder JSON oder XML zurück. Im Vergleich zu HTML enthält JSON oder XML keine Layout-Informationen und ist besser strukturiert und “machinenlesbar”. Bestenfalls bekommt die App die Daten in einer Struktur, welche sie so gleich benutzen kann. Dadurch entfallen umständliche und zeitintensive Konvertierungen und die App ist dadurch performanter.

Technologien bei Web-Backends

Da Web-Backends meistens Daten speichern und verarbeiten ist i.d.R. eine Datenbank mit im Spiel. Die wesentliche Aufgabe einer Datenbank ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern. Zudem stellt eine Datenbank benötigte Teilmengen in unterschiedlichen, bedarfsgerechten Darstellungsformen für Benutzer und Anwendungsprogramme bereit.

Relationale Datenbanken

Die gebräuchlichste Form einer Datenbank ist eine relationale Datenbank. Die Struktur der Daten wird durch ein Datenbankmodell festgelegt. Die Anfragen zur Datenbank erfolgen in der Regel in Form der Datenbank-Sprache SQL.

Die meistbenutzten relationalen Datenbanken für Web-Backends sind MySQL, MariaDB, Oracle, Microsoft SQL Server oder PostgreSQL.

NoSQL Datenbanken

NoSQL (englisch für Not only SQL deutsch: „Nicht nur SQL“) bezeichnet Datenbanken, die einen nicht-relationalen Ansatz verfolgen. Sie brechen damit mit der langen Geschichte relationaler Datenbanken. Diese Datenspeicher benötigen keine festgelegten Tabellenschemata und versuchen Joins zu vermeiden. Sie skalieren dabei horizontal. Im akademischen Umfeld werden sie häufig als „strukturierte Datenspeicher“ (engl. structured storage) bezeichnet.

Bekannte Implementierungen sind Riak, Apache Cassandra, CouchDB, MongoDB und Redis.

Programmiersprachen

Während es für native Apps nur wenige Programmiersprachen gibt, kann ein Web-Backend in vielen Programmiersprachen entwickelt werden. Die wichtigsten sind:

  1. PHP
    Mit 79% Marktanteil bei Web-Anwendungen und Web-Backends ist PHP die am meisten verwendete Web-Programmiersprache weltweit. Große Firmen, wie z.B. Facebook, Wikipedia und das beliebte CMS WordPress setzen auf PHP. Zudem wird die Sprache von einer sehr aktiven Open-Source-Community gepflegt und kann nahtlos plattformübergreifend unter UNIX, Mac und Windows arbeiten.
  2. Python
    Die Open-Source-Sprache hat sich zu einer der beliebtesten und wichtigsten Sprachen etabliert. Die wachsende Popularität von Python hat sie zu einer wichtigen Programmiersprache gemacht, die man heutzutage lernen sollte. Sie ist eine geeignete Programmiersprache, welche auch für Nicht-Programmierer aufgrund ihrer einfachen Syntax zu erlernen ist.
  3. Java
    Java hat einen guten Ruf als vielseitige Programmiersprache. Sie wird für die Desktop-, Web- und Android-Programmierung verwendet. Java ist sehr gut skalierbar. Daher verwendet man Java oft für hoch performante Web-Backends.
  4. JavaScript bzw. NodeJS
    Node.js ist eine serverseitige Plattform in der Softwareentwicklung zum Betrieb von Netzwerkanwendungen. Sie wird in der JavaScript-Laufzeitumgebung „V8“ ausgeführt. Diese wurde ursprünglich für Google Chrome entwickelt. Node.js bietet ausserdem eine ressourcensparende Architektur, die eine besonders große Anzahl gleichzeitig bestehender Netzwerkverbindungen ermöglicht.
  5. Ruby
    Obwohl Ruby eine etwas lange Lernkurve hat, ist es immer noch eine der robustesten Programmiersprachen. Ruby hat eine aktive Gemeinschaft von unterstützenden Entwicklern. Die gute Dokumentation und die beeindruckenden Open-Source-Abhängigkeiten machen es daher zu einer guten Programmiersprachen für die Backend-Entwicklung. Rubys Code ist einfach und umfangreich, was die Verwendung auch bei komplexen Entwicklungsprojekten erleichtert.

Zum schnellen und lokalen testen und auch während der Entwicklung setzen wir auf MAMP PRO, eine lokale hoch konfigurierbare Serverumgebung.

Interessiert?

Ein großer Teil unserer Entwickler war schon vor der Gründung der appsolute GmbH in einem Team, welches diverse Web-Anwendungen realisierte, wie z.B. das Web-Content-Management-System webEdition. Dadurch haben wir mehr als 20 Jahre Erfahrung in der Web-Entwicklung.

Ein weiteres Beispiel ist das von uns entwickelte iLiga-Backend, welches während der Fußball-WM in Spitzenzeiten über 10.000 Zugriffe pro Sekunde verarbeitete. 

Möchten auch Sie ein schnelles und stabiles Web-Backend von uns entwickelt haben, dann treten Sie mit uns in Kontakt.