IT & Technik

Full-Stack Frameworks: Die unbekannte Wahrheit.

Full Stack Frameworks
Geschrieben von Gastautor

5 Vorteile und 5 Risiken

Digitalisierung, Wearables, Internet of Things, Big Data – Schlagworte des Jahres 2015. Der Erfolg eines Unternehmens steht und fällt schon lange mit den Fähigkeiten der IT-Abteilung. Technologien werden komplexer und auf rasante Entwicklungen muss zeitnah reagiert werden. Die Herausforderung für die IT sind enorm und wachsen stetig weiter.

Auf der Suche nach Lösungen, um Komplexität zu reduzieren und Prozesse zu vereinfachen und zu beschleunigen, fällt immer wieder folgender Begriff: Full-Stack Frameworks.

Full-Stack Frameworks – Bausteine für alle Bereiche der App-Entwicklung

Full-Stack Frameworks sollen beim Entwicklungs- und Programmierprozess helfen, indem sie das komplette Development Stack liefern, vom User Interface bis zur Database. Das kann viele Vorteile haben, zum Beispiel eine schnellere Entwicklung.

Ruby on Rails zum Beispiel, ist ein Full-Stack Web Framework. Es bündelt Anwendungen, verwendet aber immer noch Ruby im Backend, SQL auf Datenbankseite und JavaScript im Frontend. JavaScript ist eine Full-Stack-Programmiersprache. Ursprünglich ausschließlich auf Client-Seite fürs Frontend genutzt, entwickelte es sich mit der Zeit zu einer Sprache, die auch fürs Backend und die Database funktioniert. Sie wurde also Full-Stack. Node.js ist ein JavaScript-Framework, das zur server-seitigen Ausführung von JavaScript verwendet wird und entwickelt wurde, um schnell und einfach skalierbare Network Applications zu bauen. Außerdem gibt es Fullstack-Plattformen wie Meteor. Meteor zeichnet sich dadurch aus, dass es JavaScript für das Frontend, Backend und die Datenbank verwendet und Anwendungen zu Frameworks bündelt. Es ist also eine Full-Stack-Plattform, die auf einer Full-Stack-Programmiersprache basiert.

JavaScript: Vom Client zum Server zur Datenbank

Im Allgemeinen sind Entwickler-Teams folgendermaßen unterteilt: Das Frontend-Team ist verantwortlich für die visuelle Darstellung, das User Interface (UI) und die Ausgabe von Daten auf dem Client. Das Backend-Team kümmert sich hauptsächlich um die Software-Architektur und die Prozesse auf Server-Seite. Das Database-Team konzipiert Datenbank-Systeme, die eine möglichst unkomplizierte Verwaltung und Verwendung der oftmals riesigen Datenmengen ermöglichen. Jeder Bereich verwendet dabei unterschiedliche Programmiersprachen, die speziell auf die jeweiligen Bedürfnisse zugeschnitten sind.

Dank der beherrschten Programmiersprachen lässt sich übrigens auch auf einen Blick erkennen, ob vor einem ein Frontend-, Backend- oder Database-Developer sitzt. Zum Beispiel wird PHP fürs Backend verwendet, JavaScript fürs Frontend und SQL für die Datenbank.

Soll beispielsweise ein neues Feature implementiert werden, lässt sich der Vorgang grob folgendermaßen beschreiben: Das Datenbank-Team entwickelt ein Datenbanksystem, das Backend-Team kümmert sich um die Business Logic und das Frontend-Team um das Design und User Interface. Oftmals kommt es an dieser Stelle zu Unstimmigkeiten, wie man das Feature auf allen Ebenen am besten umsetzt. Auch wenn die Spezialisten in den einzelnen Teams sich absprechen und Informationen teilen, wird es ihnen kaum möglich sein, am Code der anderen mitzuwirken.

Daraus entwickelte sich die Idee, alle Bereiche unter einer Programmiersprache zu vereinen. Erste Versuche, JavaScript auf Client-Seite und Server-Seite zu verwenden scheiterten, aber nach Jahren der Entwicklung, ließ sich die Sprache schließlich auch fürs Backend und die Datenbank verwenden. Node.js war die erste Plattform, die JavaScript auch auf Server-Seite erfolgreich bereitstellte und die Idee des Non-Blocking-Programming verbreitete.

MongoDB wiederum ist eine Datenbank für die JavaScript verwendet werden kann. JavaScript wurde also zu einer Programmiersprache, die sich im Frontend, Backend und in der Database einsetzen lässt – also Fullstack.

 

Die magische Lösung für alle Probleme?

Es dürfte keine Überraschung sein, dass die Antwort variiert, je nach Einsatzgebiet. IT-Experte Enrico Foschi, CTO beim Startup 4scotty, programmiert bereits seit mehr als 13 Jahren Full-Stack und erklärt, dass es nicht die eine Lösung für alle Probleme in der IT ist. Allerdings gibt es Bereiche, in denen sich der Einsatz von Full-Stack besonders, oder auch gar nicht eignet.

Fünf großartige Eigenschaften von Full-Stack Frameworks

  1. JavaScript (und meistens handelt es sich bei Full-Stack um JavaScript) ist aktuell die gefragteste Programmiersprache und der Trend hält an. Ein Vorteil der damit einhergeht: Durch den vielfachen Gebrauch von JavaScript auf mehreren Ebenen, werden jeden Tag mehr und mehr Bibliotheken und Plugins entwickelt, sodass nicht jeder immer wieder aufs Neue sein eigenes Session Management System oder User Access System bilden muss.Übersicht Programmiersprachen, Full-Stack Frameworks
  2. Alles dreht sich aktuell um die Verknüpfung von verschiedenen Clients. Eine Application soll also auf jedem Endgerät abrufbar sein, unabhängig von Betriebssystem und Browser. JavaScript ist aufgrund der Entwicklung von einer Client-basierten zu einer Full-Stack-Sprache besonders geeignet.
  3. Feature-Teams lassen sich einfacher bilden als Teams, die auf einem Tech-Stack basieren. In den meisten Fällen werden einfach neue Features hinzugefügt und dafür neue Teams gebildet. Hat man im Gegenteil dazu sein Team nach dem Tech-Stack in ein Frontend, Backend und Datenbank-Team unterteilt, kann es passieren, dass man für sein Unternehmen sehr große Teams bilden muss.
  4. Bei der Verwendung von Full-Stack hat man meistens eine konsistente Verbindung zwischen Business Logic und Application Modeling, was Konsistenz in der gesamten Applikationslogik garantiert. Das bedeutet: besseres Verständnis, bessere Architektur und damit auch ein besseres Produkt.Unterscheidung Feature-Team und Stack-Team
  5. Wer als Full-Stack-Entwickler arbeitet, sollte sich in der Regel mit UI, UX, Application Logic und der Daten-Seite auskennen. Dies trägt zum besseren Verständnis des Gesamt-Produktes bei und unterstützt die Weiterentwicklung.

5 Dinge die man sich zweimal überlegen sollte, bevor man auf Full-Stack Frameworks setzt

  1. Die Umstellung auf Full-Stack ist eine Herausforderung für die Developer. Während der Frontend-Entwickler nicht mehr viel dazu lernen muss, müssen das Backend- und Database-Team sich mit einer vollkommen neuen Programmiersprache anfreunden.
  2. Das Ganze dreht sich nicht nur um das Lernen einer neuen Programmiersprache. Es geht vielmehr um eine vollkommen neue Art Apps zu schreiben. Der gesamte Entwicklungsprozess muss neu gedacht werden. Ein Database-Developer muss sich Gedanken um die User Experience machen, während ein Frontend-Developer sich Gedanken über die Application Logic machen muss.
  3. Es gibt ein hohes Lock-in Risiko: Wenn man anstatt auf eine einzige Technologie, auf non-full-stack setzt, kann man leichter eine oder mehrere Programmiersprachen austauschen
  4. Man läuft Gefahr nicht das beste Mittel für einen speziellen Zweck zu verwenden. Full-Stack kann den Programmierer dann zu einer Generalisierung zwingen. Ganz abgesehen davon, ist die Verwendung eines Full-Stack-Frameworks in manchen Bereichen gar nicht möglich: Banking-Applications verlangen zum Beispiel Java oder Oracle.
  5. Full-Stack-Developer sind schwer gefragt, schwer zu finden und teuer.

Welche Erfahrungen habt ihr mit Fullstack-Frameworks und JavaScript gemacht? Fallen euch weitere Vor- oder Nachteile ein?

Über 4scotty

4scotty ist der erste Reverse-Job-Marktplatz für Software-Spezialisten in Deutschland. Hier bewerben sich Unternehmen direkt bei den Kandidaten – mit transparenten Angeboten. So bekommen Software-Spezialisten Jobangebote, die wirklich zu ihren Talenten und Vorstellungen passen. Und Unternehmen finden die fähigsten Kandidaten, schnell und einfach.

Über den Autor

Gastautor

Um unsere Inhalte etwas abwechslungsreicher zu gestalten, lassen wir gern auch andere Autoren zu Wort kommen. Interesse? Einfach Mail mit Themenvorschlag an: presse@towerconsult.de.

Hinterlassen Sie einen Kommentar