WordPress исследует независимый от JavaScript подход к построению блоков Gutenberg

Опубликовано: 2017-09-23
фото предоставлено: found_drama Пиратский город Э. – (лицензия)

Обсуждение выбора фреймворка JavaScript для WordPress продолжается на канале #core-js Slack в преддверии встречи на следующей неделе. Одной из последних тем является возможность независимого от фреймворка блочного рендеринга для Gutenberg, что позволит разработчикам расширять новый редактор, используя любую библиотеку JS, которую они предпочитают. Это означает, что блоки Гутенберга, которые в просторечии называются «блоками Гутенберга», могут быть созданы с помощью Vue, React, Preact, Angular или любого другого, что разработчику удобно использовать.

Сторонники этой идеи утверждают, что использование более гибкого подхода делает решение о базовой JS-инфраструктуре WordPress менее критичным. Отвечая на вопросы на канале #core-js, Гэри Пендергаст объяснил, как можно построить Гутенберг, чтобы сохранить разделение.

«Я действительно не шучу, когда говорю, что это решение не имеет значения даже для тех, кто вносит свой вклад в Гутенберг, — сказал Пендергаст. «В # 2463 библиотека полностью рассматривается как служебная библиотека, например, так же, как мы используем lodash. Он выполняет несколько задач, и его можно относительно легко извлечь и заменить чем-то совершенно другим без нарушения остальной части кодовой базы. Люди, которые вносят свой вклад в Гутенберг, вносят свой вклад в стиле кодирования Гутенберга, а не в стиле какой-либо библиотеки, которую мы импортируем».

Когда его спросили о сроках принятия решения и о том, какие факторы учитываются, Пендергаст ответил, что сроков нет и что те, кто заинтересован в участии, должны вести блог о своем опыте и писать примеры того, что они могут создать с помощью JS-фреймворков, которые они используют. знакомы с.

«Нет ни дорожной карты, ни графика, да и не должно быть», — сказал Пендергаст. «Как упомянул Мэтт, на самом деле это просто техническое решение — важным решением для более широкого сообщества был выбор «не React». К сожалению, это решение было несоразмерным и сильно смешивалось с вопросом «с какой библиотекой JS я смогу создавать свои плагины?» и иногда «на какие методы библиотеки JS будут похожи блоки Гутенберга?», ни один из которых не связан. Твиты и посты, которые относятся к этому как к скачкам, в этом смысле бесполезны».

Пендергаст сказал, что какая бы библиотека ни была выбрана, она «по-прежнему будет обернута элементом WordPress, базовая библиотека не будет раскрыта». Команда Gutenberg работает над удалением всех зависимостей библиотек из своих компонентов, чтобы разработчики плагинов могли использовать любую библиотеку по своему выбору.

Однако другие участники сообщества не так стремятся низвести выбранную для ядра JS-библиотеку до простого технического решения или служебной библиотеки.

«Большинство разработчиков понимают, что их плагины не связаны фреймворком, выбранным для ядра/Гутенберга», — сказал Кевин Хоффман. «Но это не умаляет значения решения. Если мы хотим поощрить больше участников, нам будет полезно выбрать структуру, в которой значительное большинство будет чувствовать себя способным и уверенным. Если это большинство разрабатывает плагины с одним фреймворком и должно изучать другое, чтобы внести свой вклад в ядро, то мы ограничиваем количество потенциальных участников».

Питер Букер утверждает, что каким бы элегантным ни было разделение Гутенберга, хорошее понимание библиотеки, выбранной для ядра, влияет на способность разработчиков глубоко устранять определенные проблемы.

«Я не думаю, что мы должны так пренебрежительно относиться к выбору как к второстепенному техническому решению», — сказал Букер. «Понимание того, как работают PHP, JavaScript и Backbone (среди прочего), необходимо для правильной отладки проблем с WordPress. Фреймворк JS, выбранный для Гутенберга, повлияет на очень многих людей, даже если мы не будем его основными участниками. Это будет необходимым знанием, чтобы иметь возможность полностью устранять проблемы. Это решение затронет гораздо больше людей, чем только команду Гутенберга».

Каковы последствия предоставления гибкого, независимого от фреймворка подхода к созданию блоков Гутенблока?

Джейсон Бал спросил, пробовал ли кто-нибудь смешивать React, Preact, Vue и Angular в одном приложении, чтобы понять, не является ли это «рецептом кошмара производительности». Он представил пример сценария, в котором Gravity Forms создает блоки Gutenblock на основе Vue, Yoast использует блоки на основе React, WooCommerce создает блоки с помощью Preact, а еще один плагин использует Ember.

«Звучит неплохо — быть гибким и позволять людям использовать что угодно, но также это может привести к большому расколу в отношении лучших практик и, возможно, проблемам с производительностью», — сказал Бал. «Мы увидим всплывающие учебные пособия о том, как создавать Gutenblocks в Vue, React, Preact, Ember, Vanilla JS и т. д., что было бы здорово увидеть, но это также сбивает с толку и может привести к дальнейшему расколу в сообществе и принятых передовых методах. . Гибкость в какой-то степени хороша, но твердое мнение на каком-то уровне тоже хорошо».

Карл Хэнкок, соучредитель Gravity Forms, утверждает, что независимый от фреймворка подход к созданию Gutenblocks мало повлияет на разработчиков, расширяющих проект. Решение нельзя сделать менее важным, предложив большую гибкость, потому что разработчики неизбежно примут все, что использует ядро ​​​​WordPress.

«Люди в конечном итоге примут все, что использует ядро, по большей части, несмотря на радугу и бабочек, о которых некоторые заявляют, поскольку это связано с созданием уровня абстракции, чтобы разработчики плагинов/тем могли использовать все, что они хотят», — сказал Хэнкок. «Это означает, что какой бы сложной ни была эта основная структура, она будет иметь прямое влияние на входной барьер для разработчиков плагинов и тем. Этот барьер для входа на сегодняшний день был исторически низким и напрямую способствовал росту WordPress как самостоятельной CMS. Резкое повышение этого барьера для входа не обязательно плохо. Например, Gravity Forms будет использовать Preact, Vue, что угодно, потому что у нас есть рабочая сила и набор навыков, чтобы сделать это, когда мы, наконец, решим сделать это, как только ядро ​​примет решение».

Возможности WordPress для продвижения в Интернете

По данным W3 Techs, в настоящее время на WordPress работает 28% всех веб-сайтов, и любой фреймворк, который он выберет, окажет большое влияние на то, какую библиотеку многие разработчики решат изучить, чтобы расширить программное обеспечение и продвинуться по карьерной лестнице.

Матиас Вентура, один из технических руководителей проекта Gutenberg, призвал участников обсуждения взглянуть на картину шире и использовать возможность совместной работы и совместной работы над решением для WordPress, которое будет способствовать развитию Интернета. Усилия команды по сотрудничеству с представителями конкурирующих фреймворков стоят особняком в экосистеме, которая, как правило, фрагментирована и неоднородна.

«Я воодушевлен тем, что у нас есть возможность продвинуть веб-разработку с точки зрения представления пользовательского интерфейса JavaScript, подобно тому, как WordPress был движущей силой для веб-стандартов в течение последнего десятилетия», — сказал Вентура. «Я также вижу, что мы несем ответственность как проект, поскольку люди будут продолжать изучать веб-разработку с помощью WP. Многие люди познакомились с PHP через WordPress, первоначально просто взаимодействуя с функциями и API WP, в конечном итоге по мере необходимости углубляясь в язык. Я вижу, что наше ядро ​​остается близким к языку JS, поскольку он дает наиболее значимый инструмент для изучения, охватывающий все фреймворки и библиотеки».

Вентура заверил участников продолжающейся дискуссии, что команда Гутенберга слушает и работает над решением, которое будет способствовать развитию Интернета.

«Мы абсолютно осознаем, что то, как мы строим и что мы предлагаем через Gutenberg, повлияет на сообщество разработчиков, и мы не относимся к этому легкомысленно — совсем наоборот», — сказал Вентура. «Я разговаривал с Эваном (Vue) и Джейсоном (Preact), потому что это не конкурс «Выбери свой фреймворк», а возможность сотрудничать и продвигать Интернет вперед».