Angular ist eine gute Wahl für die Entwicklung von Enterprise Web Apps

Erstellt: 22.05.2017
von: Roberto De Simone

Unternehmen benötigen verlässliche Werkzeuge um relativ einfach sowohl grosse wie auch kleine Anwendungen mit modernen Web Technologien entwickeln zu können. Wie jedem Web Entwickler bewusst ist, befindet sich das JavaScript Ökosystem in einem kontinuierlichen Wandel. Neue Frameworks erscheinen fast täglich und verschwinden genauso schnell wieder - ein Durcheinander. Trotzdem scheint Angular ein Werkzeug zu sein, auf welches Unternehmen setzen können.

Angular Logo mit verschiedenen Device Typen im Hintergrund

Zahlreiche Unternehmensanwendungen müssen ersetzt oder neu entwickelt werden

Unternehmen sind grundsätzlich in der Softwareentwicklung mit zwei Herausforderungen konfrontiert:

  1. Die Notwendigkeit, Prozesse zu digitalisieren, um die Herausforderungen der digitalen Disruption zu meistern. Benutzer erwarten eine ähnliche Benutzererfahrung wie bei Anwendungen von digitalen Leadern. Dies erfordert in der Regel die Entwicklung von neuen Anwendungen, welche in den meisten Fällen auch grössere Entwicklungsteams involvieren.

  2. Unternehmen besitzen eine Vielzahl von unternehmensinternen Anwendungen, welche heute kaum noch wartbar sind und deshalb von modernen Technologien abgelöst werden müssen.

Die Angular Komponenten Architektur und TypeScript führen zu wartbarem Code

Was zeichnet nun Angular für die Entwicklung von Unternehmens-Anwendungen aus?

Angular-Anwendungen basieren auf einer Komponentenarchitektur. Funktionalität wird in eine Vielzahl von Komponenten aufgeteilt, welche klar getrennt sind. Diese Trennung erlaubt ein einfaches Testen und auch die Zusammenarbeit in grossen Entwicklungsteams.

Angular Anwendungen werden normalerweise mit TypeScript erstellt, wie auch Angular selber in TypeScript entwickelt wurde (dies könnte aber durchaus auch in ES6 oder Dart geschehen). Dadurch erhalten Angular-Anwendungen eine objektorientierte Architektur, was wiederum zu einem übersichtlichen und schlussendlich gut wartbaren Quellcode führt.

Eine Randbemerkung: es gibt in der JavaScript Community zahlreiche Diskussionen über die Vor- und Nachteile beim Einsatz von typisiertem JavaScript. Abgesehen vom Offensichtlichen, dass ein objektorientierter Ansatz mit typisiertem JavaScript bereits bei der Entwicklung Fehler erkennen lässt, erlauben moderne Code-Editoren wie Webstorm oder Visual Studio Code in Zusammenhang mit TypeScript/Angular-Anwendungen Code Vervollständigung und Code Snippets. Dies führt zu intuitiver Entwicklung; ausgeklügelte Refactoring-Unterstützung bietet einfache Möglichkeiten, den Code immer wieder den Umständen gemäss neu zu organisieren.

Schnelle Ausführungsgeschwindigkeit von Angular Apps mit Ahead of Time Compilation

Mit der Einführung von Ahead of Time Compilation (AOT) und Tree Shaking wurde die Grösse einer Angular App drastisch verkleinert, was zu einem schnellen Anwendungsstart führte. Mit AOT wird kein Compiler mehr im Code mitgeliefert wie dies bei Just in Time Compilation (JIT) der Fall ist. Zusätzlich entfernt Tree Shaking Code, welcher nicht benötigt wird. Wenn einzelne Module noch mit Lazy Loading geladen werden, kann der Anwendungsstart noch weiter optimiert werden.

Auch die Ausführungsgeschwindigkeit einer Angular App wurde mit AOT deutlich verbessert. Wie der Name Ahead of Time bereits impliziert, wird mit diesem Konzept der Code bereits zur Erstellungszeit kompiliert und nicht erst bei der Ausführung, wie dies bei JIT der Fall ist. Seit Angular 4 ist AOT der Standard für die Entwicklung von Angular Apps.

Obwohl das Angular Team bereits signifikante Verbesserungen beim Anwendungsstart erreicht hat, finden kontinuierliche Optimierungen statt - vor allem im Hinblick auf mobile Geräte und Progressive Web Apps (PWA).

Die Angular CLI macht die Komponenten-Erstellung und das Bilden zu einem Kinderspiel

Die Angular CLI stelllt den Entwicklern ein Werkzeug zur Verfügung, mit dessen Hilfe Gerüste für Module, Komponenten, Services, Direktiven, Pipes, Klassen,.. erstellt werden können. Aber vermutlich noch viel interessanter ist die Funktionalität, ein App-Paket aus den zahlreichen JavaScript Dateien zu bilden. Die Zeiten sind vorbei, in denen man sich mit einer Webpack-Konfiguration herumschlagen musste (mit Hilfe des ng ejectsBefehl kann eine Webpack-Konfiguration auch heute noch bearbeitet werden). Mit Hilfe von ng build wird das App-Paket ohne weiteren Eingriff erstellt. Mit zusätzlichen Parametern kann festgelegt werden, ob es sich um einen Test Build oder Production Build handelt. Selbstverständlich sind auch benutzerdefinierte Ziele möglich.

Es verwundert nicht, dass die Verwendung der Angular CLI die empfohlene Vorgehensweise für die Entwicklung von Angular Apps ist.

Angular Universal führt zu SEO-freundlichen Apps und verbessert die Startzeit weiter

Weniger bekannt ist zur Zeit Angular Universal, welches Server Side Rendering (SSR) von Angular Anwendungen erlaubt. SSR ist interessant, weil, wie der Name vermuten lässt, die Erstellung der Webseite auf dem Server geschieht, und die fertige Seite an den Web Browser gesendet wird. Dies erhöht zum einem die Startzeit einer Angular App nochmals und zum anderen macht es die Seite gleichzeitig für Web Crawlers analysierbar - eben SEO-freundlich. Als zusätzlicher Vorteil kann erwähnt werden, dass der JavaScript Code auf dem Server versteckt ist. Ein wichtiger Aspekt für manche sensible Anwendung.

Zur Zeit können Angular Universal-Anwendungen in Zusammenarbeit mit Node.JS und ASP.NET erstellt werden.

Google entwickelt interne Apps mit Angular

Ebenso darf noch aufgeführt werden, dass Google selber intern stark auf die Entwicklung von Angular Apps setzt. Das vermutlich prominenteste Beispiel ist Google AdWord. Dies ist zwar keine Garantie, dass Angular auch langfristig bestehen wird, aber es ist zumindest ein Argument, auf welches sich Unternehmen bei der Entscheidungsfindung abstützen können.

Schlussfolgerung

Angular wird oftmals als das neue Java für Unternehmen bezeichnet. Ja, dies hat einen grossen Kern Wahrheit, da Java stark in der Entwicklung von Unternehmensanwendungen verbreitet ist, und Java-Entwickler TypeScript wegen seiner objektorientierten Architektur grundsätzlich willkommen heissen.

In der Microsoft-Welt ist Angular ebenfalls sehr willkommen, da TypeScript ein Microsoft-Produkt ist, dessen Entwicklungs-Vater - Anders Hejlsberg - bereits C# kreiert hat.

Zusammengefasst stellen Angular und dessen Ökosystem alle Werkzeuge zur Verfügung, welche Unternehmens-Anforderungen genügen, um erfolgreich skalierbare Web-Anwendungen zu entwickeln.