FAQ

FAQ

In den FAQ sammeln und beantworten wir die Fragen unserer Kunden.

Allgemein

Mit Hilfe einer Schnittstelle können Informationen zwischen Anwendungen bzw. innerhalb einer Anwendung ausgetauscht werden. So kommunizieren Frontend und Backend mit Hilfe einer Schnittstelle miteinander. Ebenso werden z.B. Zahlungsdienstleister wie Stripe per Schnittstelle in eine Anwendung integriert.

Das Backend ist der für den Nutzer nicht sichtbare Teil im Hintergrund und bezeichnet die Datenzugriffsebene. Das Frontend hingegen bildet die Eingabehilfe für den Nutzer, um mit dem Backend zu kommunizieren. Dementsprechend ist das Backend der smarte Teil einer Anwendung, der Berechnungen durchführt und dem Frontend die benötigten Informationen zur Verfügung stellt.
Abseits der technischen Definition wird der Administrationsbereich einer Anwendung häufig als Backend bezeichnet und sorgt nicht selten für Verwirrung im Austausch zwischen Entwicklerteam und Auftraggeber.

Die Cloud bezeichnet ein riesiges Servernetzwerk. Eine Anwendung in der Cloud zu hosten bietet mehrere Vorteile. So erhöht sich beispielsweise bei einem Anstieg der Nutzerzugriffe die Rechenleistung automatisch. Dadurch wird eine hohe Performance gewährleistet ohne eigene Rechenleistung in Form von Servern vorzuhalten.

In einer Datenbank werden alle benötigten Daten einer Anwendung gespeichert, die vom Backend ausgelesen und ans Frontend geschickt werden.

Ein Framework stellt einen Basiscode zur Verfügung, der ein Rahmen bzw. ein Grundgerüst einer Anwendung darstellt. Hierdurch wird vermieden, dass ein Entwickler für eine neue Anwendung nicht jedes Mal die gleichen Funktionen programmieren muss, die sowieso benötigt werden. Somit lassen sich z.B. Datenbankabfragen viel schneller entwickeln. Ein Framework bietet also eine deutliche Zeitersparnis und steigert die Codequalität der Anwendung.

Als Frontend wird die visuelle Ebene einer Software bezeichnet und ermöglicht dem Nutzer auf Daten und Prozesse der Anwendung zuzugreifen. Das Frontend ist nicht smart und kann mit der Karossiere eines Autos verglichen werden. Sieht von außen schön aus, man weiß aber nicht wie viel PS das Auto tatsächlich hat.

Hybride Apps werden nicht für ein bestimmtes Betriebssystem entwickelt, sondern funktionieren auf mehreren. Der Vorteil ist, dass nur eine App statt mehrere programmiert werden muss und ist in der Entwicklung somit günstiger. Besonders leistungsintensive Anwendungen kommen hier aber an ihre Grenzen und können im Gegensatz zu einer nativen App nicht ihr volles Potenzial entfalten.

Native Apps werden individuell für ein bestimmtes Betriebssystem (z.B. iOS oder Android) entwickelt. Sofern der Auftraggeber mehrere Betriebssysteme abdecken möchte, muss eine App mehrmals entwickelt werden. Das erhöht die Kosten des Entwicklungsprozesses, kann aber bei besonders leistungsintensiven Anwendungen von Vorteil sein.

Progressive Web Apps werden unabhängig von einem Betriebssystem entwickelt und über den Browser des Smartphones ausgeführt. Sie erfordern keinen Download im Store und müssen demnach auch nicht installiert werden. Im Vergleich zur mobilen Ansicht einer Website, können sie dem Startbildschirm eines Smartphones hinzugefügt werden. Dadurch kann die App Zugriff auf Funktionen des Smartphones wie z.B. Geolokalisierung, Kamera oder Mikrofon erlangen und dem Nutzer Push-Notifications senden.

Unter dem UI versteht man die Benutzeroberfläche, auf der Mensch und Software miteinander interagieren. Ziel ist es, dass das UI intuitiv und effizient vom Nutzer bedienbar ist.
UX bezeichnet hingegen das Nutzererlebnis (Verhaltensweisen, Emotionen etc.) bei der Interaktion mit der Software. Die UX kann also beim Vergleich verschiedener Nutzergruppen unterschiedlich sein und muss individuell betrachtet werden.

Entwicklungsprozess

Hinter diesen Begriffen verbirgt sich ein Prozess zur Softwareentwicklung und sorgt für eine kontinuierliche Automatisierung über den gesamten Lebenszyklus einer Applikation hinweg. Dieser Prozess ermöglicht es, mit mehreren Entwicklern an einem Projekt zu arbeiten. Neuer Code wird zunächst entwickelt, geprüft und anschließend mit dem Hauptteil zusammengeführt.

Die Deployment Pipeline lässt sich am besten mit der Fließbandproduktion in der Industrie vergleichen. Nur dass hier Codebestandteile von verschiedenen Entwicklern zusammengeführt und automatisiert getestet werden, um anschließend schnellstmöglich als Funktionalität in die Software integriert werden.

Auf dem Produktionsserver läuft die fertig entwickelte Software, die von echten Nutzern im Livebetrieb verwendet wird. Im Entwicklungsprozess werden neue Funktionen zunächst auf dem Testserver ausgerollt und erst nach erfolgreicher Abnahme auf den Produktionsserver gespielt, um Störungen und unnötige Bugs im Livebetrieb zu vermeiden.

Das Entwicklerteam speist neue Funktionen zunächst auf dem Testserver ein. Dort kann der Auftraggeber die neuen Funktionen testen und kontrollieren, um etwaige Änderungswünsche zu beauftragen. Erst wenn der Auftraggeber die neu entwickelten Funktionen freigegeben hat, werden sie auf den Produktionsserver aufgespielt.

Technologien

Software zur Container-Virtualisierung, mit der eine einzelne Anwendung inklusive Bibliotheken und statischer Daten in einer Image-Datei zusammengefasst werden. Dadurch benötigen Container weniger Ressourcen als z.B. eine virtuelle Maschine und können leicht auf ein anderes System übertragen werden. Der entscheidende Vorteil liegt in der Skalierung. Sobald mehr Leistung benötigt wird, können weitere Container gestartet und ebenso schnell zurückgefahren werden. Docker eignet sich besonders gut für skalierbare SaaS-Projekte.

Git ist ein Tool zur Versionskontrolle von Softwareprojekten. Hierzu wird der gesamte Code eines Softwareprojekts dezentral in einem Git-Repository bei jedem Projektmitglied hinterlegt. Dadurch kann jeder Entwickler an einer lokalen Kopie arbeiten ohne Rücksicht auf seine Teamkollegen nehmen zu müssen. Anschließend werden die einzelnen lokalen Kopien kontrolliert zusammengeführt.

JSON ist ein standardisiertes und schlankes Datenformat, das unabhängig von einer bestimmten Programmiersprache verwendet werden kann. Dabei ist es für Menschen als auch Maschinen einfach zu lesen und zu schreiben.

MongoDB ist ein dokumentenorientiertes NoSQL-Datenbankmanagementsystem und kann Daten in einem JSON-ähnlichen Format speichern. Je nach Anwendungsfall und benötigtem Datenformat kann somit die Leistung enorm verbessert werden.

MySQL ist ein weit verbreitetes leistungsstarkes, relationales Datenbankmanagementsystem.

PostgreSQL ist ein objektrelationales Datenbankmanagementsystem und kann im Vergleich zu „klassischen“ relationalen Datenbanken wie z.B. MySQL auch komplexe Datentypen oder auch multimediale Inhalten verwalten.

Die REST API ist eine Schnittstelle, die besonders in Webanwendungen weit verbreitet ist. Für die Kommunikation verwendet sie standardisierte Verfahren wie z.B. JSON oder XML.

SOAP ist ein Netzwerkprotokoll, um Daten zwischen Systemen auszutauschen und verwendet XML als Datenformat.

XML ist ein textbasiertes Datenformat, ähnlich wie JSON und kann ebenfalls von Menschen als auch Maschinen geschrieben und gelesen werden und ist unabhängig von einer bestimmten Programmiersprache.

Ihre Frage konnte nicht beantwortet werden? Dann schicken Sie uns doch eine Mail!


Staatliche Förderung "Go Digital"

Bis zu 16.500 € für Ihr Digitalisierungsprojekt