Lösungen Effiziente Softwareentwicklung im Internetzeitalter Die Vorzüge des JavaScriptFrameworks AngularJS Immer mehr Unternehmen verwenden für die Frontend-Entwicklung der unternehmensinternen Software und für Anwendungen das Framework AngularJS. Die Vorteile gegenüber anderen Frameworks liegen in der Testbarkeit, der Reduktion der Code-Komplexität und der Qualität. 50 vationsfähigkeit, die dem Preisdruck entgegenwirkt. Auch die Kundengewohnheiten ändern sich, sogar im B2B-Bereich: Megatrends sind mobile Endgeräte, hohe Bandbreiten in allen Lebenslagen und ergonomische Oberflächen. Die ersten Online-Banking-Anwendungen etwa wurden noch auf Datenträgern und mit ellenlangen Installations- und Betriebsanleitungen ausgeliefert. HTMLbasierte Online-Hilfen galten da schon als großer Fortschritt. Die nachrückenden Generationen verorten all diese Konstrukte bereits in der IT-Steinzeit. Von Real-time bis zu digitalen Bezahlverfahren – die Komplexität der Geschäftsmodelle wächst. Doch auch diese Herausforderung ist beherrschbar: durch eine agile, sehr effiziente Anwendungsentwicklung, die alle Aspekte be- rücksichtigt. Der Einsatz des JavaScript Entwicklungs-Frameworks AngularJS kann dies leisten. AngularJS ist Googles Freund. JavaScript ist dem Nischendasein als Skriptsprache für Eingabeplausibilitätschecks und Gimmicks entwachsen und zur ernsthaften Entwicklungsbasis gereift. Der Siegeszug von Web Applications, plattformunabhängigen Browser Clients, touchfähigen Endgeräten und Responsive Design belegt dies. Unter der Vielzahl von JavaScript-Entwicklungsumgebungen ist das von Google verantwortete AngularJS Framework besonders hervorzuheben. Denn mit diesem Open Source Framework können auch schwergewichtigere Anwendungen entwickelt werden. Bewährte Konstrukte wie etwa die Model-­ manage it 7-8 I 2015 Bild: © Yganko/shutterstock.com A nwendungen zu entwickeln, stellt Unternehmen vor immer größere Herausforderungen. Ein Faktor ist dabei die enorme Unbeständigkeit des Internets. Viele Unternehmen scheuen darum – verständlicherweise – davor zurück, für große, unternehmenskritische Applikationen innovative Technologien einzusetzen. Auf der anderen Seite steigen aber die Anforderungen – und die Dynamik. Das Internet hat völlig neue Geschäftsmodelle kreiert, die die tradierten Modelle in Frage stellen. So gibt es zum Beispiel veränderte Wettbewerbsstrukturen durch niedrigere Einstiegsbarrieren – für »Garagenverkäufer«. Auch geographische Kundennähe verliert in Zeiten der Globalisierung ihre Bedeutung. Viel wichtiger scheinen heute Time-to-market, 24/7-Verfügbarkeit und eine Inno- Lösungen View-Controller-Architektur liefern dabei eine Abstraktionsschicht, die ein Testen der Anwendung vereinfacht. Google selber setzt AngularJS intensiv ein. Die Re-Implementierung des Projekts »Google Feedback« ist ein beeindruckendes Beispiel: Mit AngularJS wurden die zuvor 17.000 Programmzeilen innerhalb von drei Wochen auf 1.500 Zeilen Code reduziert – und die Performance erheblich verbessert. Die geringere Zeilenzahl erhöht auch die Leserlichkeit und Wartbarkeit des Codes signifikant. Vollständige Entwicklungsplattform: MEAN Stack. Komplexe Anwendungsprojekte bestehen neben der Frontendentwicklung aus Serverkomponenten und der Anbindung an Kern- beziehungsweise Drittsysteme. AngularJS kann hier mit weiteren Komponenten zusammenspielen – im »MEAN Stack«. Viele sehr erfolgreiche Projekte wie Wiki, Facebook oder Magento wurden in der initialen Phase auf Basis von Open-Source-Komponenten des sogenannten LAMP Stacks entwickelt, mit Technologien von Linux, Apache, MySQL und PHP. Auch hier ist die Entwicklung nicht stehen geblieben. Heute schickt sich der neue MEAN Stack aus Mongo, Express, Angular und Node an, den LAMP Stack bei der Einfachheit der Web-Applikations-Entwicklung zu überholen. Zum MEAN Stack gehören neben AngularJS das Web Framework Express.js und das JavaScript Framework Node.js für Serverkomponenten. Als Datenbank dienen klassische relationale SQL-Datenbanken, zunehmend werden aber auch nichtrelationale NoSQL-Varianten wie MongoDB oder CouchDB eingesetzt. Bei großen Datenmengen und häufigen Schreibzugriffen etwa haben NoSQL-Datenbanken Vorteile, auch im Kontext von Big Data. Der MEAN Stack bietet also die komplette notwendige Technologie und erfüllt höchste Ansprüche an die Anwendungsentwicklung. Entwicklung mit testgetriebenem Ansatz. Die konventionelle InternetAnwendungsentwicklung nutzt verschiedenste Sprachkonstrukte: beimanage it 7-8 I 2015 MEAN Stack Quelle: evodion Client Server Database Der neue MEAN Stack aus Mongo, Express, Angular und Node schickt sich an, den LAMP Stack bei der Einfachheit der Web-Applikations-Entwicklung zu überholen. spielsweise Java im Backend, im Frontend-Bereich sind es JavaScript, CSS und HTML5, die DatenbankSyntax ist SQL, Webservices dienen der Kommunikation. Diese Vielfalt erfordert entsprechendes Know-how und Ressourcen. Setzt man das AngularJS Framework aber in Verbindung mit einem MEAN-Ansatz ein, reduziert man diese Komplexität und erhöht die Entwicklungseffizienz signifikant. Ein weiterer wichtiger Aspekt lässt sich mit »testgetriebener Entwicklung« überschreiben. Mit Unit-Tests werden Komponenten der Anwendung auf Code-Ebene getestet. Durch den Einsatz von Dependency Injection (Beeinflussung der Objekteigenschaften und Objektmethoden zur Laufzeit) gibt es die Möglichkeit, die Abhängigkeiten dieser Komponenten durch Platzhalter (Mock-Objekte) auszutauschen. AngularJS bringt für viele interne Komponenten sogar konkrete Mock-Implementierungen mit, die die Definition von Testfällen unterstützen. Trend zur Single Page App. Als Single-Page-Webanwendung (kurz: SPA) wird eine Webanwendung bezeichnet, die aus einem einzigen HTML-Dokument besteht und deren Inhalte dynamisch nachgeladen werden. Diese Art von Website-Design steht im Gegensatz zu klassischen Websites, die aus mehreren, untereinander verlinkten HTML-Dokumenten bestehen und durch eine Abfolge von Seiten mit definierten URLs geprägt sind. Frühere Ansätze nutzten sogenannte Rich- Internet-Application-Technologien (RIA) wie Java Applets, Silverlight oder Adobe Flex. Der neuere SPA-Ansatz, der diese Entwicklung konsequent weiterführt, setzt den Fokus auf JavaScript. Antriebsfeder ist wieder der Trend zu mobilen Endgeräten, die bei begrenzter Netzbandbreite hohe Anforderungen der Nutzer erfüllen müssen. SPA-Anwendungen verzichten auf ständigen Austausch mit dem Webserver via HTTP Requests und kommunizieren mit dem Backend effizient über RESTful Webservices. SPAs sind also so leichtgewichtig wie Web-Applikationen, brauchen keine lokalen Installationen oder Plugins und gestatten einen Zugriff von überall. Zugleich bieten sie aber die attraktiven Oberflächen komplexer Desktop-Applikationen. Und wegen der Vermeidung von Page Reloads wird die Benutzeroberfläche schnell und reaktiv wie eine App. Entwickler mögen Angular. AngularJS ist ein Framework für die Frontend-Entwicklung, das sich sehr gut für unternehmensinterne Software und Anwendungen eignet. Der Fokus auf Testbarkeit, Reduktion der CodeKomplexität und Qualität unterscheidet es deutlich von anderen Frameworks. Das Fazit ist eindeutig: Entwickler werden Angular noch auf lange Zeit zu schätzen wissen. Dr. Michael Bark Dr. Michael Bark, Geschäftsführer der evodion Information Technologies GmbH, Hamburg 51