{"id":16574,"date":"2015-12-14T08:09:58","date_gmt":"2015-12-14T07:09:58","guid":{"rendered":"https:\/\/towerconsult.de\/bewerberblog\/?p=16574"},"modified":"2016-05-12T11:32:49","modified_gmt":"2016-05-12T09:32:49","slug":"full-stack-frameworks-die-unbekannte-wahrheit","status":"publish","type":"post","link":"https:\/\/towerconsult.de\/bewerberblog\/2015\/12\/full-stack-frameworks-die-unbekannte-wahrheit\/","title":{"rendered":"Full-Stack Frameworks: Die unbekannte Wahrheit."},"content":{"rendered":"<h2>5 Vorteile und 5 Risiken<\/h2>\n<p>Digitalisierung, Wearables, Internet of Things, Big Data \u2013 Schlagworte des Jahres 2015. Der Erfolg eines Unternehmens steht und f\u00e4llt schon lange mit den F\u00e4higkeiten der IT-Abteilung. Technologien werden komplexer und auf rasante Entwicklungen muss zeitnah reagiert werden. Die Herausforderung f\u00fcr die IT sind enorm und wachsen stetig weiter.<\/p>\n<p>Auf der Suche nach L\u00f6sungen, um Komplexit\u00e4t zu reduzieren und Prozesse zu vereinfachen und zu beschleunigen, f\u00e4llt immer wieder folgender Begriff: Full-Stack Frameworks.<\/p>\n<h3>Full-Stack Frameworks \u2013 Bausteine f\u00fcr alle Bereiche der App-Entwicklung<\/h3>\n<p>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.<\/p>\n<p>Ruby on Rails zum Beispiel, ist ein Full-Stack Web Framework. Es b\u00fcndelt Anwendungen, verwendet aber immer noch Ruby im Backend, SQL auf Datenbankseite und JavaScript im Frontend. JavaScript ist eine Full-Stack-Programmiersprache. Urspr\u00fcnglich ausschlie\u00dflich auf Client-Seite f\u00fcrs Frontend genutzt, entwickelte es sich mit der Zeit zu einer Sprache, die auch f\u00fcrs Backend und die Database funktioniert. Sie wurde also Full-Stack. Node.js ist ein JavaScript-Framework, das zur server-seitigen Ausf\u00fchrung von JavaScript verwendet wird und entwickelt wurde, um schnell und einfach skalierbare Network Applications zu bauen. Au\u00dferdem gibt es Fullstack-Plattformen wie Meteor. Meteor zeichnet sich dadurch aus, dass es JavaScript f\u00fcr das Frontend, Backend und die Datenbank verwendet und Anwendungen zu Frameworks b\u00fcndelt. Es ist also eine Full-Stack-Plattform, die auf einer Full-Stack-Programmiersprache basiert.<\/p>\n<h3>JavaScript: Vom Client zum Server zur Datenbank<\/h3>\n<p>Im Allgemeinen sind Entwickler-Teams folgenderma\u00dfen unterteilt: Das Frontend-Team ist verantwortlich f\u00fcr die visuelle Darstellung, das User Interface (UI) und die Ausgabe von Daten auf dem Client. Das Backend-Team k\u00fcmmert sich haupts\u00e4chlich um die Software-Architektur und die Prozesse auf Server-Seite. Das Database-Team konzipiert Datenbank-Systeme, die eine m\u00f6glichst unkomplizierte Verwaltung und Verwendung der oftmals riesigen Datenmengen erm\u00f6glichen. Jeder Bereich verwendet dabei unterschiedliche Programmiersprachen, die speziell auf die jeweiligen Bed\u00fcrfnisse zugeschnitten sind.<\/p>\n<blockquote><p><em>Dank der beherrschten Programmiersprachen l\u00e4sst sich \u00fcbrigens auch auf einen Blick erkennen, ob vor einem ein Frontend-, Backend- oder Database-Developer sitzt. Zum Beispiel wird PHP f\u00fcrs Backend verwendet, JavaScript<\/em> <em>f\u00fcrs Frontend und SQL f\u00fcr die Datenbank.<\/em><\/p><\/blockquote>\n<p>Soll beispielsweise ein neues Feature implementiert werden, l\u00e4sst sich der Vorgang grob folgenderma\u00dfen beschreiben: Das Datenbank-Team entwickelt ein Datenbanksystem, das Backend-Team k\u00fcmmert 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\u00f6glich sein, am Code der anderen mitzuwirken.<\/p>\n<p>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\u00df sich die Sprache schlie\u00dflich auch f\u00fcrs 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.<\/p>\n<p>MongoDB wiederum ist eine Datenbank f\u00fcr die JavaScript verwendet werden kann. JavaScript wurde also zu einer Programmiersprache, die sich im Frontend, Backend und in der Database einsetzen l\u00e4sst \u2013 also Fullstack.<\/p>\n<p>&nbsp;<\/p>\n\n<h3>Die magische L\u00f6sung f\u00fcr alle Probleme?<\/h3>\n<p>Es d\u00fcrfte keine \u00dcberraschung sein, dass die Antwort variiert, je nach Einsatzgebiet. IT-Experte Enrico Foschi, CTO beim Startup <a href=\"https:\/\/4scotty.com\/\">4scotty<\/a>, programmiert bereits seit mehr als 13 Jahren Full-Stack und erkl\u00e4rt, dass es nicht die eine L\u00f6sung f\u00fcr alle Probleme in der IT ist. Allerdings gibt es Bereiche, in denen sich der Einsatz von Full-Stack besonders, oder auch gar nicht eignet.<\/p>\n<h3>F\u00fcnf gro\u00dfartige Eigenschaften von Full-Stack Frameworks<\/h3>\n<ol>\n<li>JavaScript (und meistens handelt es sich bei Full-Stack um JavaScript) ist aktuell die gefragteste Programmiersprache und der Trend h\u00e4lt 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.<img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-16575 size-full\" src=\"https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack1.jpg\" alt=\"\u00dcbersicht Programmiersprachen, Full-Stack Frameworks\" width=\"1383\" height=\"795\" srcset=\"https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack1.jpg 1383w, https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack1-150x86.jpg 150w, https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack1-300x172.jpg 300w, https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack1-768x441.jpg 768w, https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack1-1024x589.jpg 1024w, https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack1-810x466.jpg 810w, https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack1-1140x655.jpg 1140w\" sizes=\"(max-width: 1383px) 100vw, 1383px\" \/><\/li>\n<li>Alles dreht sich aktuell um die Verkn\u00fcpfung von verschiedenen Clients. Eine Application soll also auf jedem Endger\u00e4t abrufbar sein, unabh\u00e4ngig von Betriebssystem und Browser. JavaScript ist aufgrund der Entwicklung von einer Client-basierten zu einer Full-Stack-Sprache besonders geeignet.<\/li>\n<li>Feature-Teams lassen sich einfacher bilden als Teams, die auf einem Tech-Stack basieren. In den meisten F\u00e4llen werden einfach neue Features hinzugef\u00fcgt und daf\u00fcr 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\u00fcr sein Unternehmen sehr gro\u00dfe Teams bilden muss.<\/li>\n<li>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\u00a0Verst\u00e4ndnis, bessere Architektur und damit auch ein besseres Produkt.<img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-16577\" src=\"https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack2.jpg\" alt=\"Unterscheidung Feature-Team und Stack-Team \" width=\"1001\" height=\"288\" srcset=\"https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack2.jpg 928w, https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack2-150x43.jpg 150w, https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack2-300x86.jpg 300w, https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack2-768x221.jpg 768w, https:\/\/towerconsult.de\/bewerberblog\/wp-content\/uploads\/2015\/12\/4Scotty_Fullstack2-810x233.jpg 810w\" sizes=\"(max-width: 1001px) 100vw, 1001px\" \/><\/li>\n<li>Wer als Full-Stack-Entwickler arbeitet, sollte sich in der Regel mit UI, UX, Application Logic und der Daten-Seite auskennen. Dies tr\u00e4gt zum besseren Verst\u00e4ndnis des Gesamt-Produktes bei und unterst\u00fctzt die Weiterentwicklung.<\/li>\n<\/ol>\n<h3>5 Dinge die man sich zweimal \u00fcberlegen sollte, bevor man auf Full-Stack\u00a0Frameworks setzt<\/h3>\n<ol>\n<li>Die Umstellung auf Full-Stack ist eine Herausforderung f\u00fcr die Developer. W\u00e4hrend der Frontend-Entwickler nicht mehr viel dazu lernen muss, m\u00fcssen das Backend- und Database-Team sich mit einer vollkommen neuen Programmiersprache anfreunden.<\/li>\n<li>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\u00e4hrend ein Frontend-Developer sich Gedanken \u00fcber die Application Logic machen muss.<\/li>\n<li>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<\/li>\n<li>Man l\u00e4uft Gefahr nicht das beste Mittel f\u00fcr 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\u00f6glich: Banking-Applications verlangen zum Beispiel Java oder Oracle.<\/li>\n<li>Full-Stack-Developer sind schwer gefragt, schwer zu finden und teuer.<\/li>\n<\/ol>\n<p>Welche Erfahrungen habt ihr mit Fullstack-Frameworks und JavaScript gemacht? Fallen euch weitere Vor- oder Nachteile ein?<\/p>\n<h4><em>\u00dcber 4scotty<\/em><\/h4>\n<p><em>4scotty ist der erste Reverse-Job-Marktplatz f\u00fcr Software-Spezialisten in Deutschland. Hier bewerben sich Unternehmen direkt bei den Kandidaten \u2013 mit transparenten Angeboten. So bekommen Software-Spezialisten Jobangebote, die wirklich zu ihren Talenten und Vorstellungen passen. Und Unternehmen finden die f\u00e4higsten Kandidaten, schnell und einfach.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>5 Vorteile und 5 Risiken Digitalisierung, Wearables, Internet of Things, Big Data \u2013 Schlagworte des Jahres 2015. Der Erfolg eines Unternehmens steht und f\u00e4llt schon lange mit den F\u00e4higkeiten der IT-Abteilung. Technologien werden komplexer und auf rasante Entwicklungen muss zeitnah reagiert werden. Die Herausforderung f\u00fcr die IT sind enorm und wachsen stetig weiter. Auf der [&hellip;]<\/p>\n","protected":false},"author":41,"featured_media":16578,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[100],"tags":[],"_links":{"self":[{"href":"https:\/\/towerconsult.de\/bewerberblog\/wp-json\/wp\/v2\/posts\/16574"}],"collection":[{"href":"https:\/\/towerconsult.de\/bewerberblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/towerconsult.de\/bewerberblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/towerconsult.de\/bewerberblog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/towerconsult.de\/bewerberblog\/wp-json\/wp\/v2\/comments?post=16574"}],"version-history":[{"count":0,"href":"https:\/\/towerconsult.de\/bewerberblog\/wp-json\/wp\/v2\/posts\/16574\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/towerconsult.de\/bewerberblog\/wp-json\/wp\/v2\/media\/16578"}],"wp:attachment":[{"href":"https:\/\/towerconsult.de\/bewerberblog\/wp-json\/wp\/v2\/media?parent=16574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/towerconsult.de\/bewerberblog\/wp-json\/wp\/v2\/categories?post=16574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/towerconsult.de\/bewerberblog\/wp-json\/wp\/v2\/tags?post=16574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}