Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Sponsored Post Was ist das?

Software-Architekt Manfred Steyer: „Angular 2 ist extrem schnell“

Anzeige
Was bringt das Update von AngularJS 1 auf Angular 2 für Entwickler? Anlässlich der bevorstehenden Angular Days in Berlin erklärt ein Speaker die Auswirkungen.

AngularJS-Experte Manfred Steyer. (Foto: softwarearchitekt.at)
AngularJS-Experte Manfred Steyer. (Foto: softwarearchitekt.at)

Manfred Steyer ist Speaker auf den Angular Days, die vom  10. bis 12. Oktober 2016 in Berlin stattfinden. Im Interview mit Thomas Wießeckel, Redakteur von entwickler.de und des PHP Magazins, spricht er unter anderem über das Update von AngularJS 1 auf Angular 2  und die Auswirkungen.

Wießeckel: Manfred, wie sinnvoll ist es aktuell, mit dem schleichenden Update von AngularJS 1 auf Angular 2 zu beginnen?

Manfred Steyer: Ich würde prüfen, ob sich ein Upgrade in Hinblick auf Kosten und Nutzen rentiert. Bei einer Anwendung, die nur ein wenig Wartung bekommt, wird ein Upgrade auf Version 2 womöglich nicht sinnvoll sein. Ansonsten könnte man auch noch den Microservice-Ansatz evaluieren. Eventuell kann man bestehende Module bei AngularJS 1.x belassen und neue als getrennte Anwendungen (Microservices) mit Angular 2 bauen. Wer jetzt schon an die Grenzen stößt – zum Beispiel in Hinblick auf Performance – und wer eine AngularJS-1.x-Anwendung hat, die noch länger erweitert wird, wird jedoch eher zu einer schleichenden Migration mit ngupgrade tendieren.

Wießeckel: Was genau macht ngupgrade eigentlich?

Steyer: ngupgrade erlaubt einen Parallelbetrieb von AngularJS 1.x und Angular 2 innerhalb einer Anwendung. Somit kann ich AngularJS-Services und -Komponenten gemeinsam mit Angular 2 nutzen – dazu werden sie einem Downgrade unterzogen. Das bedeutet, dass ngupgrade ihnen einen Wrapper (Adapter) verpasst, damit sie nach außen hin aussehen wie entsprechende AngularJS-1.x-Gegenstücke. Dasselbe gilt für Komponenten und Services, die mit AngularJS 1.x geschrieben wurden; sie erhalten im Zuge eines Upgrades einen solchen Wrapper.

Wießeckel: Was geschieht mit AngularJS-1.x-Code, der nicht komponentenbasiert ist?

Steyer: Upgraden kann man nur Services und Komponenten, sowie Direktiven, die sich wie Komponenten verhalten. Deshalb erfolgt die Migration in zwei Phasen: In der ersten Phase ist der bestehende Code vorzubereiten, in der zweiten Phase findet dann die tatsächliche Migration mit Hilfe von ngupgrade statt.

Wießeckel: Geht es etwas genauer?

Steyer: Beim Vorbereiten der Migration wird der bestehende Code komponentenorientiert gestaltet. Man könnte auch sagen, dass man den Code auf „modernes AngularJS 1.x“ umstellt. Ein Refactoring zur Schaffung von Komponenten ist selbst dann eine gute Idee, wenn man später nicht migrieren möchte, denn Komponenten helfen bei der Reduktion der Komplexität sowie bei der Steigerung der Wiederverwendbarkeit. Das bedeutet unter anderem, dass man Controller und die dazugehörigen Templates zu Komponenten gruppiert. Auch der Router sollte in weiterer Folge direkt Komponenten adressieren und nicht mehr Controller mit entsprechenden Templates. UI-Router 1.x wird das direkt unterstützen; für die derzeit stabile Version 0.3.x gibt es ein paar einfache Tricks. Das ist übrigens ein Thema, mit dem ich mich auf den Angular Days ausführlich beschäftigen werde.

Die Angular-Days finden vom 10. bis 12. Oktober in Berlin statt.
Die Angular Days finden vom 10. bis 12. Oktober in Berlin statt.

Wießeckel: Wie umfangreich gestaltet sich diese Prozedur bei einer auf AngularJS basierenden Applikation?

Steyer: Ich denke, das kann man nicht generell beantworten. Aber betrachten wir mal den einfachen Fall, in dem man einen Controller, der schon Controller-As-Semantik nutzt, zu einer Komponente machen möchte. Hier reicht es, mit einem Methodenaufruf die Komponente zu beschreiben und das Routing auf die Komponente umzustellen. Die Komponentenbeschreibung wird in diesen Fall den bestehenden Controller und das dazugehörige Template referenzieren. Möchte man eine AngularJS-1.x-Direktive einem Upgrade unterziehen, muss man prüfen, ob sie sich an die für Komponenten definierten Konventionen hält. Ist dem so, ist sie zu refaktorieren.

Wießeckel: Was ist noch zu beachten?

Steyer: Bedenken sollte man auch, dass man im Zuge einer Migration idealerweise auch auf Typescript umstellt. Alternativ dazu kann man auch auf ECMAScript 6 (2015) umstellen – das kann einen ganzen Rattenschwanz nach sich ziehen. Plötzlich muss man sich mit Modul-Systemen und Module-Loader beschäftigen sowie den Build-Prozess inklusive Bundling darauf abstimmen. Selbst wenn man schon vor einiger Zeit Typescript eingeführt hat und noch nicht das neue ECMAScript-6-Modul-System nutzt, gilt es hier einiges an Know-how aufzubauen und Arbeit zu investieren.

Wießeckel: Für welche Komponenten eignet sich das kommende Release besonders?

Steyer: Ich denke, gerade dann, wenn man jetzt eine auf AngularJS 1.x basierende Anwendung um ein neues Modul ergänzt, bietet sich der Einsatz von Angular 2 inklusive ngupgrade an. Dasselbe dürfte der Fall sein, wenn man ein bestehendes Modul umfangreich abändern muss. Dazu kommt, dass Angular 2 extrem schnell ist und somit zur Optimierung performance-kritischer Bereiche eingesetzt werden kann.

Hast du auch Fragen an Manfred oder möchtest du dein Wissen im Bereich Angular erweitern?

Dann sei dabei! Bei den Angular Days kannst du zusammen mit den parallel laufenden Javascript Days und HTML5 Days  aus insgesamt 30 Power-Workshops wählen und von 21 Experten lernen.

Infos zu den Angular-Days in Berlin

Mehr zu den Angular Days auch auf Facebook und Twitter.

4 Reaktionen
Insomnia
Insomnia

Ich verstehe nach wie vor nicht, warum man angularjs überhaupt nutzen sollte. =/ Könnte mir jemand erklären ab wann sich das lohnt? Muss ein Projekt eine bestimmte Größe haben, einen bestimmten Anspruch an Aktualität? Sprich wenn ich eine Firmenwebseite habe, wo sich vllt. ne Hand voll Ding im Jahr drauf "tun", welche Vorteile hätte ich dann von Angular?

Antworten
Yannick
Yannick

Also für eine statische Webseite ist Angular denke ich die falsche Wahl. Da greif ich persönlich lieber auf ein CMS zurück.
Wir nutzen Angular für Webanwendungen aller Art, wobei Komplexität und Größe des Projektes eigentlich kein Kriterium sind. Ich arbeite persönlich einfach gerne mit Typescript und finde das SPAs ziemlich flexibel für alle möglichen Probleme sind.

Antworten
Det
Det

Von deiner Frage her denkst du wohl an redaktionelle Websites, wie Firmenhomepage, Blogs, Online Magazine. ("Dokumente")

Darum geht es nicht, sondern um Webapplikationen. Denk an sowas wie Google Mail, Google Docs, oder webbasierte Vereinsverwaltungen, Versicherungsanwendungen usw.

Antworten
Insomnia88
Insomnia88

Danke für die Infos. Ich dachte auch an z.B. E-Commerce. Selbst da kann ich es mir (nach wie vor) nicht vorstellen, wenn man eh 'n shop-system oder cms (oder beides) benutzt.

Antworten
Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden