WordPress bada niezależne od frameworka JavaScript podejście do budowania bloków Gutenberga

Opublikowany: 2017-09-23
fot.: found_drama pirackie miasto E. – (licencja)

Dyskusja dotycząca wyboru frameworka JavaScript WordPress jest kontynuowana w kanale #core-js Slack przed spotkaniem w przyszłym tygodniu. Jednym z ostatnich tematów jest możliwość niezależnego od frameworka renderowania bloków dla Gutenberga, co pozwoliłoby programistom rozszerzyć nowy edytor przy użyciu dowolnej preferowanej biblioteki JS. Oznacza to, że bloki Gutenberga, które są potocznie określane jako „Gutenblocks”, mogą być budowane za pomocą Vue, React, Preact, Angular lub czegokolwiek, z czego deweloper czuje się komfortowo.

Zwolennicy tego pomysłu twierdzą, że dążenie do bardziej elastycznego podejścia sprawia, że ​​kluczowe decyzje dotyczące frameworka JS WordPress są mniej krytyczne. Odpowiadając na pytania na kanale #core-js, Gary Pendergast wyjaśnił, w jaki sposób można zbudować Gutenberga, aby utrzymać separację.

„Naprawdę nie żartuję, kiedy mówię, że ta decyzja nie ma znaczenia, nawet dla osób wnoszących wkład w Gutenberg” – powiedział Pendergast. „W #2463 biblioteka jest traktowana całkowicie jako biblioteka narzędziowa, podobnie jak używamy na przykład lodash. Wykonuje kilka zadań i można go stosunkowo łatwo wyciągnąć i zastąpić czymś zupełnie innym, bez zakłócania reszty kodu. Ludzie, którzy przyczyniają się do Gutenberga, mają swój wkład w stylu kodowania Gutenberga, a nie w stylu jakiejkolwiek biblioteki, którą importujemy”.

Zapytany o harmonogram, kiedy zostanie podjęta decyzja i jakie czynniki są brane pod uwagę, Pendergast odpowiedział, że nie ma harmonogramu, a osoby zainteresowane udziałem powinny blogować o swoich doświadczeniach i pisać przykłady rzeczy, które mogą zbudować za pomocą frameworków JS, które są zaznajomieni z.

„Nie ma ani mapy drogowej, ani osi czasu, ani też nie ma takiej potrzeby” – powiedział Pendergast. „Jak wspomniał Matt, to tak naprawdę tylko decyzja techniczna – ważną decyzją dla szerszej społeczności było wybranie „nie React”. Niestety, decyzja ta została wyrzucona nieproporcjonalnie i mocno połączona z pytaniem „z jakiej biblioteki JS będę mógł budować moje wtyczki?”. a czasami „jakie praktyki biblioteki JS będą przypominać bloki Gutenberga?”, z których żadne nie są powiązane. Tweety i posty, które traktują to jak wyścig konny, nie są w tym pomocne”.

Pendergast powiedział, że jakakolwiek biblioteka zostanie wybrana, „nadal będzie opakowana przez element WordPress, podstawowa biblioteka nie zostanie ujawniona”. Zespół Gutenberga pracuje nad usunięciem wszystkich zależności bibliotek ze swoich komponentów, aby twórcy wtyczek mogli korzystać z dowolnej wybranej przez siebie biblioteki.

Jednak inni członkowie społeczności nie są tak chętni do przenoszenia biblioteki JS wybranej do rdzenia do prostej decyzji technicznej lub biblioteki użytkowej.

„Większość programistów rozumie, że ich wtyczki nie są związane z frameworkiem wybranym dla rdzenia/Gutenberga” – powiedział Kevin Hoffman. „Ale to nie umniejsza znaczenia decyzji. Jeśli chcemy zachęcić więcej współtwórców, dobrze nam przysłuży się wybranie takiej struktury, w której znaczna większość czuje się zdolna i pewna siebie. Jeśli ta większość tworzy wtyczki z jednym frameworkiem i musi nauczyć się innego, aby wnieść swój wkład w core, to ograniczamy liczbę potencjalnych współtwórców.”

Peter Booker twierdzi, że bez względu na to, jak elegancka jest separacja Gutenberga, przyzwoite zrozumienie biblioteki wybranej do rdzenia wpływa na zdolność programistów do głębokiego rozwiązywania niektórych problemów.

„Nie sądzę, abyśmy tak lekceważyli wybór jako drobną decyzję techniczną” – powiedział Booker. „Zrozumienie, jak działają PHP, JavaScript i Backbone (między innymi), jest niezbędne do prawidłowego debugowania problemów z WordPressem. Framework JS wybrany dla Gutenberga będzie miał wpływ na wiele osób, nawet jeśli nie jesteśmy głównymi współtwórcami. Niezbędna będzie wiedza, aby móc w pełni rozwiązywać problemy. To decyzja, która wpłynie na znacznie więcej osób niż tylko na zespół Gutenberga”.

Jakie są implikacje zapewnienia elastycznego, niezależnego od frameworka podejścia do budowania Gutenblocków?

Jason Bahl zapytał, czy ktoś próbował połączyć React, Preact, Vue i Angular w jednej aplikacji, aby sprawdzić, czy to „przepis na koszmar wydajności”. Przedstawił przykładowy scenariusz, w którym Gravity Forms buduje Gutenblocki oparte na Vue, Yoast ma bloki oparte na React, WooCommerce buduje bloki z Preact, a inna wtyczka używa Ember.

„Brzmi trochę fajnie być elastycznym i pozwolić ludziom na używanie wszystkiego, ale może to prowadzić do wielu podziałów w zakresie najlepszych praktyk i potencjalnie problemów z wydajnością” – powiedział Bahl. „Zobaczymy samouczki, jak budować Gutenblocki w Vue, React, Preact, Ember, Vanilla JS itp., co byłoby fajnie zobaczyć, ale także mylące i potencjalnie powodujące dalsze podziały w społeczności i akceptowane najlepsze praktyki . Elastyczność jest do pewnego stopnia przyjemna, ale silna opinia na pewnym poziomie też jest dobra”.

Carl Hancock, współzałożyciel Gravity Forms, twierdzi, że oferowanie niezależnego od frameworka podejścia do budowania Gutenblocków będzie miało niewielki wpływ na programistów, którzy rozszerzają projekt. Decyzja nie może być mniej krytyczna, oferując większą elastyczność, ponieważ programiści nieuchronnie przyjmą to, czego używa rdzeń WordPressa.

„Ludzie w większości przyjmą wszelkie podstawowe zastosowania, pomimo tęczy i motyli, które niektórzy twierdzą, że wiąże się to z tworzeniem warstwy abstrakcji, aby twórcy wtyczek / motywów mogli używać tego, czego chcą” – powiedział Hancock. „Co oznacza, że ​​niezależnie od tego, jak złożona jest podstawowa struktura, będzie miała bezpośredni wpływ na barierę wejścia dla twórców wtyczek i motywów. Ta bariera wejścia była dotychczas historycznie niska i bezpośrednio przyczyniła się do rozwoju WordPressa jako samoobsługowego CMS. Dramatyczne podniesienie tej bariery wejścia niekoniecznie jest czymś złym. Na przykład Gravity Forms użyje Preact, Vue, cokolwiek, ponieważ mamy siłę roboczą i zestaw umiejętności, aby to zrobić, gdy w końcu będziemy mogli to zrobić, gdy rdzeń podejmie decyzję.

Szansa WordPressa na rozwój sieci

Według W3 Techs WordPress obsługuje obecnie 28% wszystkich stron internetowych, a niezależnie od tego, jaki framework wybierze, będzie miał duży wpływ na to, którą bibliotekę wielu programistów zdecyduje się uczyć w celu rozszerzenia oprogramowania i rozwoju kariery.

Matias Ventura, jeden z kierowników technicznych projektu Gutenberg, zachęcał uczestników dyskusji do spojrzenia na szerszy obraz i skorzystania z okazji do wspólnej pracy i współpracy nad rozwiązaniem dla WordPressa, które przyspieszy rozwój sieci. Wysiłki zespołu mające na celu współpracę z przedstawicielami konkurencyjnych platform wyróżniają się w ekosystemie, który jest ogólnie podzielony i frakcyjny.

„Jestem podekscytowany możliwością, jaką mamy, aby rozwinąć tworzenie stron internetowych pod względem reprezentacji interfejsu użytkownika w JavaScript, w podobny sposób, w jaki WordPress był siłą napędową standardów internetowych w ciągu ostatniej dekady” – powiedział Ventura. „W tym miejscu widzę, że ponosimy odpowiedzialność jako projekt, ponieważ ludzie będą nadal uczyć się tworzenia stron internetowych za pośrednictwem WP. Wiele osób zostało wprowadzonych do PHP za pośrednictwem WordPressa, początkowo po prostu wchodząc w interakcję z funkcjami WP i interfejsami API, ostatecznie zagłębiając się nieco głębiej w język w razie potrzeby. Widzę, że nasz rdzeń pozostaje blisko JS, języka, ponieważ jest to najbardziej znaczące narzędzie do nauki, obejmujące wszystkie frameworki i biblioteki”.

Ventura zapewniła uczestników toczącej się dyskusji, że zespół Gutenberga słucha i pracuje nad rozwiązaniem, które popchnie Internet do przodu.

„Jesteśmy całkowicie świadomi, że sposób, w jaki budujemy i co oferujemy za pośrednictwem Gutenberga, wpłynie na społeczność programistów i nie traktujemy tego lekko – wręcz przeciwnie” – powiedział Ventura. „Rozmawiałem z Evanem (Vue) i Jasonem (Preact), ponieważ zamiast konkursu „wybierz swój framework”, wydaje się to okazją do współpracy i pchania sieci do przodu”.