Blog › Was taugt Angular?

Marco Regniet Marco Regniet

Eine persönliche Einschätzung von unserem Software Engineer Marco Regniet zu Angular und dessen Vorteile.

angular-code

Worum es geht – Angular

Als ich das erste Mal von Angular hörte, fragte ich mich: Was ist das nun wieder für ein Framework? Hat die Welt denn nicht schon genug Frameworks, die für kurze Zeit gehypt und dann doch nie mehr gesehen werden? Als Software Engineer interessieren mich aber neue Ansätze und so recherchierte ich (wie viele andere sicherlich auch), was Angular genau ist. Schnell wurde klar, dass es spürbare Ähnlichkeiten zum Google Web Toolkit (GWT) besitzt, ein Frontend-Framework, welches ich im Jahr 2008 ganz toll fand. Ebenfalls zeigte sich, dass Angular, welches auch aus dem Google-Labor stammt, ähnliche Ideen und Ziele wie GWT verfolgt. Im Wesentlichen soll Angular die Modularisierbarkeit und Testbarkeit von WebApps verbessern. Wie GWT kompiliert es den programmierten Code in eine komprimierte JavaScript-WebApp. Im Unterschied zu GWT kompiliert es aber Typescript zu Javascript und nicht Java zu JavaScript. Typescript wiederum basiert auf der Syntax von JavaScript, erweitert aber JavaScript um Klassen und feste Datentypen. Ein Tutorial später fand ich Angular zwar interessant, aber da der Technologie-Stack in meinem aktuellen Projekt gesetzt war, legte ich den Gedanken über Angular beiseite… bis vor kurzem!

Unsere Erfahrungen

In einem aktuellen Projekt bei Cubera konnten wir Angular 4 als Frontend einsetzen. Für einen Kunden durften wir bereits vor meiner Zeit bei der Cubera eine Webapplikation auf Basis von AngularJS entwickeln. Der Unterschied von AngularJS zu Angular 4 ist gross, da AngularJS noch nicht auf Typescript aufbaut. Die Verwandtschaft zwischen AngularJS und Angular 4 lässt sich jedoch nicht leugnen, so konnten wir diverse Teile aus dem ersten Webprojekt direkt portieren und auf Angular 4 anpassen.

Angular Blogpost x3

Nach dem Tutorial von damals hätte ich nicht gedacht, dass Angular 4 mich einmal in diesem Ausmass begeistern könnte. Nicht nur die Entwicklung von einfachen CRUD-Anwenden geht sehr schnell, auch komplexere Anwendungen können dank diverser Plugins, welche im Web zur Verfügung stehen, leicht entwickelt werden. Die Modularisierbarkeit erleichtert die Arbeit in Teams massiv, so kann ein Teammitglied an gewissen Komponenten arbeiten und andere Teammitglieder entsprechend an anderen Komponenten. Die starke Trennung zwischen Viewcontroller, View und Style, die von Haus aus bei Angular besteht, führt zu einer klaren Struktur und zu einer erhöhten Wartbarkeit. Der von Angular generierte JavaScript-Code lässt sich einfach auf jedem Server platzieren und braucht daher keine spezielle Infrastruktur auf dem produktiven System.

Testbarkeit

Zu guter Letzt noch ein Wort zur Testbarkeit. Ich war in vielen Projekten, bei denen wir versucht haben, Tests für das Frontend zu entwickeln. Die meisten Versuche sind entweder gescheitert oder haben hohe Entwicklungskosten verursacht. Das Problem liegt aus meiner Sicht an zwei Gründen. Einerseits müssen oft beim Frontend-Testing die User-Klicks simuliert werden, weil es ist nicht möglich ist, die einzelnen Aktionen direkt zu testen. Andererseits können Mockups schlecht integriert werden, sodass Frontend-Teile oftmals nur mittels Integrationstests und nicht als Unittests geprüft werden können. Angular 4 löst aus meiner Sicht beide Probleme. Die gerade den JEE-Entwicklern bekannten Injektions gibt es bei Angular ebenfalls, daher können einzelne Klassen durch Mockups ausgetauscht und einzeln getestet werden. Ebenfalls müssen keine Userklicks simuliert, sondern es können einzelne Methoden direkt getestet werden. Obwohl es sich um ein Frontend-Framework handelt, fühlt sich Angular gerade wegen der klaren Struktur und der Testbarkeit sehr stark wie ein Backend-Framework an.

Mein Fazit: Angular 4 verbindet die OO-Welt (Objekt-Orientiert) mit der Welt von JavaScript. Die Machtvollen Konzepte von JavaScript können mit der Strukturierbarkeit und Testbarkeit einer OO-Sprache wie zum Beispiel Java angewandt werden. Daher ist Angular 4 für das Frontend einer Web-App, welche modular und testbar aufgebaut werden soll, sehr gute Plattform.