Olga Petrova (Sencha) im Interview

„Das Klassensystem von ES6+ ist einer der Hauptgründe dafür, dass JavaScript so beliebt geworden ist.“
Keine Kommentare

Als JavaScript mit der Veröffentlichung von ES6 ein Klassensystem bekam, hatte Ext JS bereits eine eigene Lösung implementiert. Wir haben zur International JavaScript Conference London 2019 mit Olga Petrova (Sencha) über die Erfahrungen gesprochen, die Sencha mit der Entwicklung und Anpassung seines eigenen Klassensystems an ES6+ gemacht hat.

Entwickler: Was sind die wichtigsten Aspekte des Klassensystems in JavaScript, das in den ECMAScript-Versionen seit 2015 (ES6+) aufgebaut wurde?

Olga Petrova: Das neue Klassensystem ermöglicht es Entwicklern, alle Vorteile der objektorientierten Programmierung zu nutzen, die in anderen Sprachen (wie Java, C++, C#, Ruby, Python) üblich sind, aber für JavaScript-Entwickler viele Jahre nicht verfügbar waren.

Das macht das Schreiben von gut strukturiertem Code und das Management der Komplexität großer Enterprise-Anwendungen leichter. Das neue Klassensystem bietet Webentwicklern mehr Werkzeuge für ihre Arbeit. Ich würde sagen, dass das einer der Hauptgründe dafür ist, dass JavaScript so beliebt geworden ist.

Entwickler: Sencha, wo du arbeitest, hatte zuvor für Ext JS ein anderes Klassensystem für JavaScript entwickelt, das sich von der Lösung in ECMAScript unterschied. Wo lagen die größten Unterschiede?

Das Klassensystem von ES6+ ist einer der Hauptgründe dafür, dass JavaScript so beliebt geworden ist.

Petrova: Vor mehr als 10 Jahren, als JavaScript noch eine prototypenbasierte Sprache war, hat Sencha für unser Framework Ext JS ein eigenes Klassensystem entwickelt. Das war ein notwendiger Schritt für uns, denn wir mussten unseren Kunden ein umfassendes Werkzeug zur Verfügung stellen, mit dem sie komplexe Enterprise Web-Anwendungen erstellen können. Unser Klassensystem ist weiter entwickelt als die derzeit von der Standardspezifikation unterstützten: Neben Vererbung, Abhängigkeiten und unserem eigenen Build-Tool (ähnlich dem heute gebräuchlichen WebPack) beinhaltet es Konfigurationseigenschaften, Mixins und Overrides. Wir haben festgestellt, dass diese letzten drei Funktionen einen wichtigen Mehrwert für das Klassensystem darstellen und von unseren Kunden häufig eingesetzt werden.

iJS React Cheat Sheet

Free: React Cheat Sheet

You want to improve your knowledge in React or just need some kind of memory aid? We have the right thing for you: the iJS React Cheat Sheet (written by Joel Lord). Now you will always know how to React!

Entwickler: Mit der Veröffentlichung des Klassensystems in ECMAScript musstet ihr eure Lösung aber überarbeiten. Was waren dabei die größten Herausforderungen, denen ihr euch stellen musstet?

Petrova: Nachdem das Klassensystem von ECMAScript 6 sich weit verbreitet hatte, mussten wir unser eigenes auf Basis des Standards neu schreiben. Und wir mussten einen Weg finden, Konfigurationseigenschaften, Mixins und Overrides neu zu implementieren – Funktionen, die nicht im Standard enthalten sind. Es war schwierig, einen Weg dafür zu finden. Aber die neu vorgeschlagenen JavaScript Decorators wirkten wie eine perfekte Lösung dafür. Wir haben auch Klassenfelder verwendet, die sich derzeit im Proposal-Status befinden und nur transpiliert verfügbar sind. Wir hoffen, dass beide Vorschläge bald anerkannt und in den Status aufgenommen werden.

Entwickler: Hast du Tipps für Unternehmen, die vor einer ähnlichen Aufgabe stehen?

Petrova: Der wichtigste Ratschlag, den wir anderen Unternehmen geben können, ist, zu versuchen, die Verwendung von nicht im Standard enthaltenen Lösungen nach Möglichkeit zu vermeiden. Man sollte sich nur dann für eine maßgeschneiderte, eigene Lösung entscheiden, wenn sie absolut notwendig ist, was in unserem Fall zutraf. Man sollte auch versuchen, schon im Voraus abzuschätzen, wie groß der Aufwand dafür wäre, die Lösung neu schreiben zu müssen. Ein weiterer offensichtlicher Tipp ist die Kapselung individueller Erweiterung, da das die notwendige Zeit für künftige Überarbeitungen verringert. Neue Trends und Technologien sollte man immer im Blick behalten und versuchen, individuelle Lösungen schnell an Branchentrends anzupassen.

Wenn man individuelle Lösungen schreibt, sollte man von Anfang an abschätzen, wie viel Aufwand es ist, sie danach wieder überarbeiten zu müssen.

Entwickler: Was ist das wichtigste Take-away, das alle Teilnehmer aus deiner Session mitnehmen sollten?

Petrova: Ich werde in meiner Session Einblick in die architektonischen Entscheidungen und den technologischen Background geben, der diese Entscheidungen maßgeblich beeinflusst hat. Außerdem spreche ich über die Fallstricke, über die wir gestolpert sind und die Änderungen die wir vorgenommen haben, um uns den Standards anzupassen, die die moderne Web-Community verwendet – all das, worauf wir Ext JS, Senchas Framework für Webanwendungen, schlussendlich neu aufgebaut haben. Ich hoffe, dass die Teilnehmer diese Erfahrungen und Best Practices in ihre eigenen Projekte einbringen können und dass sie ihnen letztendlich helfen können, einen besseren, strategischeren Ansatz zu verfolgen, der sich an den aktuellen Technologien orientiert, um ihre Lösungen richtig aufzubauen.

Entwickler: Vielen Dank für das Interview!

Im Interview: Olga Petrova


Session: How to re-architect a JavaScript Class System
Olga Petrova is a software engineer with more than fourteen years of experience in developing enterprise and data science applications. She has worked with a broad range of web technologies, JavaScript libraries and frameworks, and she has a special interest in data visualization and developing enterprise web applications. She enjoys rock climbing, sailing, and snowboarding. Olga is a Developer Advocate for Europe and the Middle East at Sencha, an Idera, Inc. company.

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 -