WordPress untersucht einen JavaScript-Framework-unabhängigen Ansatz zum Erstellen von Gutenberg-Blöcken

Veröffentlicht: 2017-09-23
Bildnachweis: found_drama E.s Piratenstadt – (Lizenz)

Die Diskussion über die Auswahl des JavaScript-Frameworks von WordPress wird vor dem Treffen nächste Woche im Slack-Kanal #core-js fortgesetzt. Eines der neueren Themen ist die Möglichkeit des Framework-agnostischen Block-Renderings für Gutenberg, das es Entwicklern ermöglichen würde, den neuen Editor mit jeder beliebigen JS-Bibliothek zu erweitern. Das bedeutet, dass Gutenberg-Blöcke, die umgangssprachlich als „Gutenblöcke“ bezeichnet werden, mit Vue, React, Preact, Angular oder was auch immer der Entwickler gerne verwendet, erstellt werden könnte.

Befürworter dieser Idee behaupten, dass das Verfolgen eines flexibleren Ansatzes die Entscheidung für das Kern-JS-Framework von WordPress weniger kritisch macht. Bei der Beantwortung von Fragen im Kanal #core-js erklärte Gary Pendergast, wie Gutenberg aufgebaut werden könnte, um die Trennung aufrechtzuerhalten.

„Ich scherze wirklich nicht, wenn ich sage, dass diese Entscheidung keine Rolle spielt, selbst für Menschen, die zu Gutenberg beitragen“, sagte Pendergast. „In #2463 wird die Bibliothek vollständig als Utility-Bibliothek behandelt, ähnlich wie wir zum Beispiel Lodash verwenden. Es führt eine Handvoll Aufgaben aus und kann relativ einfach herausgezogen und durch etwas völlig anderes ersetzt werden, ohne den Rest der Codebasis zu stören. Für Leute, die zu Gutenberg beitragen, tragen sie im Gutenberg-Codierungsstil bei, nicht im Stil der Bibliothek, die wir zufällig importieren.“

Auf die Frage nach einem Zeitplan, wann die Entscheidung getroffen wird und welche Faktoren berücksichtigt werden, antwortete Pendergast, dass es keinen Zeitplan gibt und dass diejenigen, die an einer Teilnahme interessiert sind, über ihre Erfahrungen bloggen und Beispiele für Dinge schreiben sollten, die sie mit den von ihnen erstellten JS-Frameworks erstellen können vertraut sind.

„Es gibt weder eine Roadmap noch einen Zeitplan, noch muss es eine geben“, sagte Pendergast. „Wie Matt erwähnte, ist es wirklich nur eine technische Entscheidung – die wichtige Entscheidung für die breitere Community war die Entscheidung ‚nicht reagieren'. Leider wurde diese Entscheidung völlig übertrieben und stark mit der Frage „mit welcher JS-Bibliothek kann ich meine Plugins erstellen?“ vermengt. und manchmal „Welchen Praktiken der JS-Bibliothek werden Gutenberg-Blöcke ähneln?“, von denen keines verwandt ist. Tweets und Posts, die es wie ein Pferderennen behandeln, sind auf diese Weise nicht hilfreich.“

Pendergast sagte, dass jede ausgewählte Bibliothek „weiterhin vom WordPress-Element umschlossen wird, die zugrunde liegende Bibliothek wird nicht offengelegt“. Das Gutenberg-Team arbeitet daran, alle Bibliotheksabhängigkeiten aus seinen Komponenten zu entfernen, damit Plugin-Entwickler jede Bibliothek ihrer Wahl verwenden können.

Andere Community-Mitglieder sind jedoch nicht so erpicht darauf, die für den Kern ausgewählte JS-Bibliothek zu einer einfachen technischen Entscheidungs- oder Dienstprogrammbibliothek zu degradieren.

„Die meisten Entwickler verstehen, dass ihre Plugins nicht an das für Core/Gutenberg gewählte Framework gebunden sind“, sagte Kevin Hoffman. „Aber das schmälert die Bedeutung der Entscheidung nicht. Wenn wir mehr Mitwirkende ermutigen wollen, wären wir gut beraten, einen Rahmen zu wählen, in dem sich eine große Mehrheit fähig und sicher fühlt. Wenn diese Mehrheit da draußen Plugins mit einem Framework entwickelt und ein anderes lernen muss, um zum Core beizutragen, dann begrenzen wir die Anzahl potenzieller Mitwirkender.“

Peter Booker behauptet, dass, egal wie elegant Gutenbergs Trennung ist, ein anständiges Verständnis der für den Kern ausgewählten Bibliothek die Fähigkeit eines Entwicklers beeinträchtigt, bestimmte Probleme gründlich zu beheben.

„Ich denke nicht, dass wir die Wahl als geringfügige technische Entscheidung so geringschätzen sollten“, sagte Booker. „Zu verstehen, wie PHP, JavaScript und Backbone (unter anderem) funktionieren, ist unerlässlich, um Probleme mit WordPress richtig debuggen zu können. Das für Gutenberg gewählte JS-Framework wird sich auf sehr viele Menschen auswirken, auch wenn wir nicht zu den wichtigsten Mitwirkenden gehören. Es wird ein wesentliches Wissen sein, um Probleme vollständig beheben zu können. Diese Entscheidung wird weit mehr Menschen betreffen als nur das Gutenberg-Team.“

Welche Auswirkungen hat die Bereitstellung eines flexiblen, Framework-unabhängigen Ansatzes zum Erstellen von Gutenblocks?

Jason Bahl fragte, ob jemand versucht habe, React, Preact, Vue und Angular in einer einzigen App zu mischen, um zu sehen, ob es „ein Rezept für einen Performance-Albtraum“ sei. Er stellte ein Beispielszenario vor, in dem Gravity Forms Vue-basierte Gutenblocks erstellt, Yoast React-basierte Blöcke hat, WooCommerce Blöcke mit Preact erstellt und ein anderes Plugin Ember verwendet.

„Es klingt irgendwie nett, flexibel zu sein und den Leuten zu erlauben, was auch immer zu verwenden, aber es könnte auch zu einer Menge Meinungsverschiedenheiten in Bezug auf Best Practices und möglicherweise zu Leistungsproblemen führen“, sagte Bahl. „Wir werden sehen, wie Tutorials zum Erstellen von Gutenblocks in Vue, React, Preact, Ember, Vanilla JS usw. auftauchen, was cool zu sehen wäre, aber auch verwirrend und möglicherweise zu weiteren Spaltungen in der Community und akzeptierten Best Practices führen würde . Flexibilität ist bis zu einem gewissen Grad schön, aber eine starke Meinung auf einer gewissen Ebene ist auch gut.“

Carl Hancock, Mitbegründer von Gravity Forms, behauptet, dass das Angebot eines Framework-agnostischen Ansatzes zum Erstellen von Gutenblocks wenig Einfluss auf Entwickler haben wird, die das Projekt erweitern. Die Entscheidung kann nicht weniger kritisch gemacht werden, indem mehr Flexibilität angeboten wird, da Entwickler unweigerlich übernehmen werden, was auch immer der WordPress-Kern verwendet.

„Die Leute werden am Ende größtenteils alle Kernanwendungen übernehmen, trotz der Regenbögen und Schmetterlinge, die einige behaupten, wenn es um die Erstellung einer Abstraktionsschicht geht, damit Plugin-/Theme-Entwickler verwenden können, was sie wollen“, sagte Hancock. „Was bedeutet, wie komplex das Kern-Framework letztendlich auch sein mag, wird sich direkt auf die Eintrittsbarriere für Plugin- und Theme-Entwickler auswirken. Diese Eintrittsbarriere war bisher historisch niedrig und trug direkt zum Wachstum von WordPress als selbst gehostetes CMS bei. Diese Eintrittsbarriere drastisch zu erhöhen, ist nicht unbedingt eine schlechte Sache. Zum Beispiel wird Gravity Forms Preact, Vue, was auch immer verwenden, weil wir die Manpower und die Fähigkeiten dazu haben, wenn wir uns endlich dafür entscheiden können, sobald Core seine Entscheidung getroffen hat.“

Die Möglichkeit von WordPress, das Web voranzubringen

Laut W3 Techs betreibt WordPress derzeit 28 % aller Websites, und welches Framework auch immer es wählt, wird einen großen Einfluss darauf haben, welche Bibliothek viele Entwickler lernen möchten, um die Software zu erweitern und ihre Karriere voranzutreiben.

Matias Ventura, einer der technischen Leiter des Gutenberg-Projekts, ermutigte die Teilnehmer an der Diskussion, das Gesamtbild zu betrachten und die Gelegenheit zu nutzen, zusammenzuarbeiten und an einer Lösung für WordPress zu arbeiten, die das Web voranbringen wird. Die Bemühungen des Teams, mit Vertretern konkurrierender Frameworks zusammenzuarbeiten, heben sich von anderen ab in einem Ökosystem, das im Allgemeinen fragmentiert und widersprüchlich ist.

„Ich freue mich über die Gelegenheit, die wir haben, um die Webentwicklung in Bezug auf die Darstellung von JavaScript-Benutzeroberflächen voranzutreiben, ähnlich wie WordPress in den letzten zehn Jahren eine treibende Kraft für Webstandards war“, sagte Ventura. „Hier sehe ich auch unsere Verantwortung als Projekt, da die Leute weiterhin Webentwicklung durch WP lernen werden. Viele Leute wurden über WordPress in PHP eingeführt, ursprünglich nur mit WP-Funktionen und APIs interagierend, um schließlich bei Bedarf etwas tiefer in die Sprache einzutauchen. Ich sehe unseren Kern in der Nähe von JS, der Sprache, da dies das sinnvollste Werkzeug zum Lernen ist, das sich über alle Frameworks und Bibliotheken erstreckt.“

Ventura versicherte den Teilnehmern der laufenden Diskussion, dass das Gutenberg-Team zuhört und an einer Lösung arbeitet, die das Internet vorantreibt.

„Wir sind uns absolut bewusst, dass die Art und Weise, wie wir bauen und was wir über Gutenberg anbieten, die Entwicklergemeinschaft beeinflussen wird, und wir nehmen dies nicht auf die leichte Schulter – ganz im Gegenteil“, sagte Ventura. „Ich habe mit Evan (Vue) und Jason (Preact) gesprochen, weil dies eher eine Gelegenheit zu sein scheint, zusammenzuarbeiten und das Web voranzutreiben, als einen „Choose your Framework“-Wettbewerb zu veranstalten.“