JavaScript

Erin Zimmer im Interview zur iJS London 2019

„Mit ng-upgrade kann man neue Funktionen mit Angular 8 schreiben, ohne erst den ganzen AngularJS-Code zu überarbeiten“
Keine Kommentare

Der Support für AngularJS, auch bekannt als Angular 1, endet 2021. Wer jetzt noch mit AngularJS arbeitet, sollte sein Projekt also bald aktualisieren. Wir haben zur International JavaScript Conference 2019 in London mit Erin Zimmer über Upgrade-Strategien gesprochen.

Entwickler: Was ist deiner Meinung nach die größte Hürde für das Upgrade von Projekten von AngularJS auf Angular 6+?

Erin Zimmer: Der Umzug auf ein neues Build-System. Das Upgrade von AngularJS auf Angular ist ab sich ziemlich gradlinig (wenn man sich bereits mit beiden Versionen auskennt). AngularJS-Apps können allerdings mit diversen Build-Systemen geschrieben werden (und ich habe sogar mit Anwendungen gearbeitet, die gar kein Build-System hatten). Angular-Apps verwenden hingegen normalerweise Webpack, vor allem wenn man das CLI nutzt. Das Setup davon kann ein großer Schritt sein, weil es sich konzeptuell unterscheidet.

Entwickler: Wie hat sich die Architektur von Angular über die Jahre verändert?

Zimmer: Die Architektur von Angular hat sich über die Jahre ziemlich verändert. In alten Versionen von Angular konnte man JavaScript an jedes bisschen HTML hängen, das irgendwo herum lag. Dadurch entstand schlecht abgekapselter Code, der schwer zu verstehen war. Als Komponenten der allgemein akzeptierte Weg zum Schreiben von Web-Apps wurden, hat Angular sich dem nach und nach angepasst. Das ging mit den Template-basierten Directives los, ging weiter mit den AngularJS-Komponenten (die eine spezielle Art von Komponenten darstellen), bis man die heutige, 100% auf Komponenten basierende Architektur erreicht hat.

Lesen Sie auch: Angular 8 ist da – die neuen Features im Überblick

Entwickler: Inwiefern wird das Release von Angular 8 den Upgradeprozess für Nutzer viel älterer Versionen beeinflussen?

Zimmer: Angular 8 bringt nichts mit, was das Upgrade besonders erleichtern wird. Bei hybriden Apps wird der Upgradepfad aber aufgrund einer Änderungen am Router und frt$location-Services glatter werden.

Entwickler: Kann man direkt von Angular 1 auf Angular 8 aktualisieren?

Zimmer: Das hängt davon ab, mit welcher Angular-Version man beginnt. Alle Versionen ab 1.4 sollten per ng-upgrade funktionieren (frühere Versionen könnten auch möglich sein, aber das habe ich nie gesehen). Der Weg dahin besteht im allgemeinen darin, eine hybride App zu erstellen, die sowohl Angular 1 als auch Angular 8 parallel zu einander nutzt. Danach ersetzt man dann alle Angular-1-Teile nach und nach durch Angular-8-Komponenten und Services.

IT Security Summit 2019

Sichere Logins sind doch ganz einfach!

mit Arne Blankerts (thePHP.cc)

Hands-on workshop – Hansel & Gretel do TLS

mit Marcus Bointon (Synchromedia Limited)

Entwickler: Gibt es Tools oder Strategien, die beim Upgrade helfen und die du für empfehlenswert hältst?

Zimmer: Man kann einer Reihe von Strategien folgen. Die direkteste ist die Verwendung von ng-upgrade, um eine hybride App zu erstellen, die sowohl AngularJS (1.0 – 1.7) als auch Angular (v2+) parallel verwendet. Dadurch kann man neue Funktionalitäten in Angular schreiben, ohne den kompletten AngularJS-Code zuerst zu überarbeiten. Das ist ein guter Ansatz, weil dadurch jeder Teil der Anwendung jederzeit aktualisiert werden kann. Der Nachteil besteht darin, dass man immer die gesamte AngularJS-Anwendung bootstrapen muss, auch wenn man nur die Teile nutzen will, die in Angular geschrieben wurden.

Ein zweiter Ansatz besteht darin, die neuen Funktionen als Microfrontends zu benutzen, indem man das Nrwl NX Schematics nutzt. Das funktioniert gut, wenn man isolierte Teile der Funktionalität hat, die man getrennt vom Rest der App bauen und ausführen kann. Dadurch muss dann nicht immer der gesamte AngularJS-Code geladen werden.

In jedem Fall ist es aber sehr wichtig, den gesamten AngularJS-Code zu upgraden, da die letzte Version davon das Ende des Supports im Jahr 2021 erreicht.

Die Speakerin: Erin Zimmer
Die Session: How to drag your AngularJS App into the Future without kicking and screaming
Erin Zimmer is a senior developer and Thought Leader at Shine Solutions in Melbourne, Australia. Erin has been writing code for over ten years now, but mostly in languages nobody has ever heard of, like Model204. If you see her at a conference, she’ll be the one knitting.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -