Translated by: Nicole Gajda, Junior Regional Field Marketer, eZ

Ende August haben wir 1.11 (1.11 release notes) angekündigt und was vielleicht noch wichtiger ist: Auch haben wir den offiziellen Support für Legacy Bridge und eine neue Version der Legacy eZ Publish bekanntgegeben (mehr Infos hier).

Mittlerweile haben wir unseren Oktober Fast Track der eZ Platform, Version 1.12, genauso wie die neue Maintenance Release unserer langfristig unterstützten (LTS) Version 1.7.6 veröffentlicht.

Das Wichtigste, woran wir gearbeitet haben, ist natürlich Version 2 der eZ Platform. Wie Sie vielleicht wissen, haben wir die ersten Alpha Versionen der Version 2 im Juni zur Zeit der eZ Conference angekündigt. Während wir mit den frühen Prototypen und ersten Alpha-Versionen in vielerlei Hinsicht zufrieden waren, hatten wir auch einige Bedenken, was dazu führte, dass wir einiges änderten, was am Ende dann die eZ Platform V2 wird. Hier möchten wir Ihnen einige Einblicke in diese Änderungen geben.

Die Änderungen, die wir seit der Alpha vorgenommen haben, basieren rein auf der UI Architektur-Seite. Unsere erste Explorationsphase und Prototypen führten uns zu einer Architektur in der Alpha-Version, die wir "Hybrid UI" nannten, hier zusammengefasst:

  • Viel mehr auf Symfony basierend (Anwendungsrouting wird mit Symfony durchgeführt und Front-End mit Symfony als Hauptoption entwickelt)
  • Weitere Verwendung eines einzelnen Anwendungsparadigmas (mit dem Pjax-System einen Teil der Anwendung von Symfony (neu) laden, ohne die Seite zu aktualisieren)
  • Mit der Entscheidung einige Teile der vorherigen Version (basierend auf YUI) wiederzuverwenden, sie in ein benutzerdefiniertes Tag einzubetten und sich dabei auf Web-Komponenten und die Polymer-Bibliothek zu verlassen (die Begründung dafür war die Annahme, dass wir nicht in der Lage wären alle Parts wieder zu entwickeln und dass einige Parts absolut ausreichend sind)

Als wir die Alpha-Version erreichten und anfingen, uns auf eine Beta zu konzentrieren, begannen mehr Entwickler sich die Version anzuschauen und auf ihr zu entwickeln – Entwickler von eZ Systems, aber auch externe Entwickler, die bereit waren die Version 2 zu testen oder beizutragen.

Wir erkannten, dass die Anwendung für einen neuen Entwickler schwer zu verstehen blieb und dass dies wahrscheinlich nicht dazu beitrug „die Entwicklung ausreichend zu beschleunigen“. Dies ist aber eine der wichtigsten Anforderungen, nicht nur für das Team von eZ Systems, die mit der Platform arbeiten, sondern auch für Partner und Kunden, die an den Erweiterungen arbeiten. Unsere Beobachtung war, dass es auch zusätzliche Komplexität brachte, die es schwieriger machen würde, eine solide und robuste Anwendung zu erstellen.

Wir beobachteten, dass die schrittweise Entfernung des YUI-basierten Teils durch die Umhüllung der YUI durch Web-Komponenten Nachteile hatte (ständiges Laden der YUI, Komplexität, Unfähigkeit zur zukünftigen Verbesserung). Dies stellte unsere ursprünglichen Annahmen in Frage.

Also haben wir uns einen einfacheren und pragmatischeren Ansatz angeschaut, der mit folgenden Änderungen zusammengefasst werden kann:

  • Wir machen es zu einer “reinen” Symfony Anwendung. Die Hybrid U.I. war eine Symfony Anwendung, aber mit einer zusätzlichen Logik-Ebene, um es „SPA-like“ zu machen, glich es keiner „reinen“ Symfony Anwendung. Dies bedeutet, dass das „pjax“ dynamische Laden der Anwendungsteile innerhalb der Seite nicht verwendet wird, sondern einfach ein klassisches "HTTP Page Reload" in den meisten Fällen, so wie in den durchschnittlichen Symfony-Anwendungen.
  • Wir bieten immernoch die Möglichkeit für Entwickler Teile (oder Widgets) zu erstellen, die hochgradig interaktiv und dynamisch sind, auf JS basieren, und die sich ohne Page Reloads verwalten können, aber auf einfachere Weise und ohne dies jemals einen Kernbestandteil der Architektur zu machen.
  • Keine Wiederverwendung und Mitführung des YUI-basierten Codes, somit Umschreibung aller Komponenten, die wir hatten und YUI benutzten. Stattdessen Verwendung von Symfony und React (wie das Universal Discovery Widget, die Sub-Item-Widgets und danach den Landing-Page Editor).
  • Außerdem Verwendung von React.js für jeden zukünftigen Teil der Anwendung, welches möglicherweise erweiterte U.I. Fähigkeiten benötigt.

Und das erwies sich als richtiger Weg, vor allem mit der Leistungssteigerung von PHP 7. Mit dieser Wahl sind wir zuversichtlich, dass wir eine gute und sehr schnelle User Experience bieten können, wenn nicht sogar besser. Noch wichtiger ist, dass wir denken, dass wir Entwicklern einen effektiveren Weg bieten können, um die Plattform zu verstehen, auf ihr zu entwickeln und stabile und solide Funktionen schneller zu erstellen. Dies sollte sich bereits im anfänglichen Entwicklungszyklus auszahlen, da wir mit diesem Ansatz schneller Beta- sowie stabile Stufen erreichen. Von dort aus werden wir auch auf den Rich-Komponenten schneller iterieren können, da sie reine React.js sind und nicht in Web-Komponenten abstrahiert sind.

Dies scheint in diesem Stadium eine bedeutende Änderung zu sein. Es ist jedoch keine Revolution, sondern ein internes Refactoring. Die meisten der U.I. Komponenten, die in Hybrid-U.I. zuvor entwickelt wurden (basierend auf Pjax), können einfach angepasst werden, ohne sie neu codieren zu müssen, und wurden wiederverwendet. Wenn Sie also damit beginnen die Hybrid Platform U.I. alpha mit Symfony zu erweitern, sollte sich Ihre Entwicklung auch sehr leicht an diesen neuen Ansatz anpassen.

Natürlich blieben alle Dinge in den Schichten unter der Schnittstelle unverändert. Wenn es um U.I. oder U.X. Design geht, bleiben die Dinge auch größtenteils unverändert, bis auf die Tatsache, dass U.I. Richtlinien Front-End-HTML und CSS-Snippets bereitstellen müssen, die zu diesem neuen Ansatz passen – wir haben bereits damit begonnen, daran zu arbeiten.

Derzeit arbeiten wir an einer Beta-Version der eZ Platform V2 auf Basis der aktualisierten U.I. Architektur und visieren eine stabile Version bis zum Jahresende an, um mit einer einzigen Komponente noch einige YUI-Codes einzubetten - der Landing Page Editor von Studio.

Bis jetzt haben wir in der Entwicklungsphase in persönlichen Repositories gearbeitet, aber bereinigen und reorganisieren auch den Code in den endgültigen öffentlichen Repositories unter der eZ Systems Github Organisation (https://github.com/ezsystems/ezplatform-admin-ui für die Hauptanwendung und https://github.com/ezsystems/ezplatform-admin-ui-modules für die mit React.js entwickelten Widgets.)

Wir hoffen, dass Ihnen diese Änderungen gefallen. Wir sind der Meinung, dass Symfony-Entwickler es viel einladender finden sollten, es ihre Arbeit erleichtern soll und ihnen dabei zu helfen, Dinge schneller zu erledigen. Das war schließlich die ursprüngliche Anfrage von Partnern und der Community. In Zukunft bleiben wir auf dem Weg, die Architektur noch weiter zu vereinfachen. Damit sollte Symfony der einzige Kern sein, die ein Entwickler für die schnelle Entwicklung mit der eZ Platform kennen sollte. JS-Entwickler sind weiterhin begrüßt und erweitern sowohl die Plattform U.I. oder auch das Frontend ihrer Seiten mit hochgradig interaktiven Fähigkeiten, ohne eine Kernanforderung zu sein.

Wir freuen uns auf Ihre Kommentare unter diesem Beitrag.

Load Comments
loading...