Manfred Steyer im Interview

„Ivy wird in der Welt von Angular ganz neue Möglichkeiten bieten, zum Beispiel einen Betrieb ohne NgModules“

Ann-Cathrin Klose

© Shutterstock / Hafiez Razali

Drei Fragen zu Angular: Wir haben Manfred Steyer, Trainer auf den JavaScript Days und Speaker auf der International JavaScript Conference, nach Anwendungszwecken, Testing-Tools und der größten Neuerung in der Angular-Welt gefragt: Ivy!

JAXenter: Angular hat den Ruf, die beste Wahl für Enterprise-Anwendungen zu sein. Wie stehst du dazu – für welche Einsatzzwecke rätst du zur Nutzung von Angular?

Manfred Steyer: Enterprise-Anwendungen sind sicher das Hauptgebiet von Angular. Es bietet out-of-the-box so ziemlich alles, was man sich von einem Framework dafür erwartet: Dependency Injection, Formulare, Validierungen, Testing-Support, PWA-Support, Routing etc. Genau dafür wurde Angular auch bei Google entwickelt, wo es für über 1200 solcher Lösungen zum Einsatz kommt.

Das für Angular aufgebaute Know-How kann allerdings auch für andere Bereiche genutzt werden. Für Customer-Anwendungen wird zum Beispiel Server Side Rendering unterstützt. Das war dem Team sogar so wichtig, dass sie dieses Feature, das zuvor ein Community-Projekt war, mit Version 4 in das offizielle Produkt aufgenommen haben. Mit Ivy und Angular Elements wird Angular auch leichtgewichtige Komponenten und Web Components unterstützen und hier auch extrem kleine Bundles produzieren.

JAXenter: Jede Anwendung sollte getestet werden. Welches Testing-Tool muss man für Angular unbedingt kennen (und warum)?

Das Thema Test-Performance wird immer wichtiger.

Manfred Steyer: Wichtig ist, dass man sich mit den Grundwerkzeugen, die das CLI out-of-the-box für Unit-Testing anbietet, auseinandersetzt. Zum Beispiel bietet Karma einige Konfigurationsmöglichkeiten zum Feinjustieren und Jasmin hat ein sehr nettes Spy-Konzept, das leider ein wenig untergeht, weil es kein direktes Angular-Feature ist. Aber auch Angular bietet zur Integration in diese Frameworks einige nette Möglichkeiten, zum Beispiel einige Hilfsmittel zum Handhaben von Asynchronität in Tests. Wer ein wenig über den Tellerrand hinausblicken möchte, sollte sich Jest als Karma-Alternative für Unit-Tests sowie Cypress als Protractor-Alternative für E2E-Tests ansehen.

Daneben stelle ich fest, dass das Thema Test-Performance immer wichtiger wird, zumal wir immer mehr und größere Test-Suites haben. Shallow-Testing ist hier ein wichtiges Thema aber auch die Möglichkeit, nur die Tests ausführen zu können, die von den letzten Code-Änderungen betroffen sind. Die CLI-Erweiterung Nx bietet sowas zum Beispiel an.

JAXenter: Angular 9 mit Ivy kommt im Herbst. Worauf bist du besonders gespannt und welche Auswirkungen wird Ivy auf das Ökosystem haben?

Manfred Steyer: Kurzfristig werden leichtgewichtige Anwendungen und Komponenten, die viele Möglichkeiten von Angular gar nicht benötigen, am meisten profitieren. Das betrifft auch Web Components. Hier werden wir dank Ivy stark optimierte Bundles bekommen, die sich mit jenen von einfacheren Frameworks messen können oder deren Fußabdruck sogar unterbieten. Normale Anwendungen werden kurzfristig ein wenig von Ivy profitieren, da auch hier die Bundles kleiner werden dürften. Das hängt aber sehr stark vom Anwendungsfall ab.

Mittelfristig bietet Ivy in der Welt von Angular ganz neue Möglichkeiten, zum Beispiel einen Betrieb ohne NgModules.

Mittelfristig bietet Ivy in der Welt von Angular ganz neue Möglichkeiten, zum Beispiel einen Betrieb ohne NgModules. Dieses Konzept führt bei Einsteigern immer wieder zu Verwirrung, weil es auf den ersten Blick keinen Sinn macht, neben dem ECMAScript-Modul-System ein weiteres Angular-spezifisches zu haben. Auch das Angular-Team, das NgModules aus technischen Gründen einführen musste, sieht das so. Dank Ivy werden diese NgModules früher oder später optional werden.

Ivy ist mittelfristig aber auch der Schlüssel zu dynamischen Komponenten, die on-the-fly erzeugt werden, und somit auch zu den aus React bekannten Higher Order Components. Außerdem wird künftig die Internationalisierung auf Ivy basieren. Die Idee ist es, damit für Übersetzungstexte eine Art one-time-binding zu realisieren. Aber auch Lazy Loading auf Komponentenebene und das Erweitern von Angular durch Drittanbieter wird mittelfristig durch Ivy vereinfacht bzw. erst wirklich möglich.

Dazu kommt, dass Ivy die Grundlage für Angular Photon ist. Dabei handelt es sich um einen hoch-experimentellen Betriebsmodus, der Server Side Rendering und Lazy Loading auf die nächste Ebene hebt und somit Angular nicht nur für Customer-facing Applications sehr attraktiv machen wird.

Manfred Steyer ist Trainer und Berater mit Fokus auf Angular, Google Developer Expert (GDE) und Trusted Collaborator im Angular-Team. Er unterstützt Firmen im gesamten deutschen Sprachraum, schreibt für O’Reilly, Heise und das Java-Magazin und spricht regelmäßig auf Konferenzen.
Geschrieben von
Ann-Cathrin Klose
Ann-Cathrin Klose
Ann-Cathrin Klose hat allgemeine Sprachwissenschaft, Geschichte und Philosophie an der Johannes Gutenberg-Universität Mainz studiert. Bereits seit Februar 2015 arbeitete sie als redaktionelle Assistentin bei Software & Support Media und ist seit Oktober 2017 Redakteurin. Zuvor war sie als freie Autorin tätig, ihre ersten redaktionellen Erfahrungen hat sie bei einer Tageszeitung gesammelt.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: