Участники Gutenberg обсуждают недостатки использования фреймов для мета-боксов
Опубликовано: 2017-11-04
На GitHub идет оживленная и продуктивная дискуссия об использовании Гутенбергом фреймов для метабоксов. Вчера разработчик WordPress Кевин Хоффман создал выпуск под названием «Являются ли iframe жизнеспособным долгосрочным решением для метабоксов?»
В Gutenberg 1.5 появилась начальная поддержка метабоксов. Хоффман выявил несколько проблем с iframe, которые появлялись, когда разработчики начали тестировать текущую реализацию метабокса. Он провел некоторое тестирование производительности, которое показало, что использование iframe в Гутенберге утроило количество запросов ресурсов, поскольку оно ставит в очередь все ресурсы CSS и JS в родительском окне, а также во всех фреймах.

«Вообще говоря, использование iframe не рекомендуется в веб-разработке в течение многих лет по хорошо задокументированным причинам», — сказал Хоффман, прежде чем привести список проблем, которые разработчики плагинов уже обнаружили при тестировании поддержки метабоксов Гутенберга. «Можно ли решить эти проблемы, не требуя модификации темы или плагина, создающего метабокс? Мы должны учитывать, что сторонний код, который годами работал с метабоксами, может не иметь роскоши обновления, чтобы быть совместимым с iframe».
Ведущий дизайнер Гутенберга Тэмми Листер ответила на опасения Хоффмана, указав, что текущая реализация мета-блоков — это просто эксперимент и не обязательно то, что появится в WordPress 5.0:
Хорошо немного подумать о том, что то, что мы имеем сегодня для метабоксов в Гутенберге, является экспериментом, во многих отношениях это схема ожидания, поскольку проект вырабатывает направление, в котором нужно двигаться. Говоря, что это то, что работает «на данный момент», но это не то, с чем мы хотели бы поставляться.
Все вышесказанное, я думаю, важно посмотреть, для чего в будущем будут использоваться метабоксы. Каковы случаи (если они есть), которые не будут преобразованы в блоки? Все ли метабоксы должны работать на мобильных устройствах? Есть ли вообще альтернативный интерфейс, который мы не исследовали? Бьюсь об заклад, есть. Прямо сейчас речь идет о том, чтобы рассмотреть эти возможности и встать на путь, который работает для государства сейчас и для будущего государства.
Презентация этой реализации как эксперимента, который «пока работает» (но не будет выпущен), стала неожиданностью после выхода Gutenberg 1.5 с объявлением, что «этот выпуск включает долгожданную поддержку мета-блоков (требуется тестирование!)».
Хоффман утверждает, что подход iframe даже не работает «на данный момент», поскольку проблема была открыта для того, чтобы указать несколько основных причин, по которым он не работает. Если Гутенберг будет двигаться вперед с нынешним подходом, потребуется изменить множество плагинов, чтобы они были совместимы с WordPress 5.0, что, по словам Хоффмана, сведет на нет всю цель поддержки устаревших метабоксов.
«На сегодняшний день я не видел никаких доказательств того, что метабоксы будут продолжать работать с Гутенбергом», — сказал Хоффман. «Если ответ отрицательный, то мы должны перестать притворяться, что 5.0 будет просто еще одним выпуском WordPress, и начать честно говорить о нарушении обратной совместимости».
Эдвин Кромли, соавтор проекта, сказал, что команда ожидает, что некоторые темы и плагины будут сломаны, и что невозможно учесть все возможные варианты использования. Он признал, что решение iframe может не соответствовать целям проекта. Вместо этого он выступает за создание лучшего опыта для подавляющего большинства пользователей.
Однако текущий подход отрицательно скажется на многих сайтах, которые используют WordPress в основном как CMS с мета-полями. Основной коммиттер WordPress Скотт Тейлор выразил обеспокоенность по поводу пользовательских типов записей, многие из которых не используют традиционный раздел «контент» в пользу только мета-полей.
«В текущей итерации поддержка мета-боксов является надстройкой, тогда как в реальности многих людей мета-боксы ЯВЛЯЮТСЯ пользовательским интерфейсом, API, механизмом, который они используют для создания своей CMS», — сказал Тейлор. «iframes — это ГУЛАГ.
«И мы навсегда забываем о ценностях, на которых построен WP: я должен иметь возможность обновляться до последней версии WP, и мне не нужно ничего переписывать. У меня так много проектов в дикой природе на WP, что я больше никогда не вернусь. Могу ли я быть уверен, что некоторые из них не сломаются с этим изменением?»
Хоффман выступал за сокращение масштабов проекта, чтобы сосредоточиться на компоненте редактора, это популярное мнение, которое разделяют многие разработчики плагинов и которое было подробно проиллюстрировано в сообщении Yoast, предлагающем альтернативный подход к Гутенбергу. Этот подход поэтапно вносит изменения в экран редактирования, давая разработчикам больше времени для обновления своих плагинов, а также позволяя команде Гутенберга найти адекватное решение для мета-полей.


«Я думаю, что эта цель была бы намного более достижимой, если бы Гутенберг придерживался пересмотра редактора, а не захвата всей страницы», — сказал Хоффман. «Тогда мы могли бы оставить существующие хуки на месте, а метабоксы могли бы продолжать общаться друг с другом, как сейчас. Кроме того, постановка активов в очередь не будет проблемой, поскольку она будет работать так же, как и сегодня.
«Я полностью согласен с этой концепцией, выдвинутой Yoast, которая, как мне кажется, сохранит большую часть уже проделанной работы, сократив масштаб проекта, чтобы сосредоточиться на компоненте редактора».
Инженер Gutenberg Риад Бенгуэлла указал, что команда не слишком заинтересована в работе над этой концепцией.
«Повторное использование частей Gutenberg для создания этой концепции относительно выполнимо, но это не тот UX, для которого мы хотим оптимизировать, мы хотим сначала создать лучший из возможных редакторов и сделать его доступным для людей без проблем с обратной совместимостью (свежие установки, никаких метабоксов… )», — сказал Бенгуэлла.
«Когда мы решим, что идеальное видение Гутенберга будет готово к выпуску, у нас будет время обсудить стратегии пути обновления, концепция, подобная этой, является вариантом пути обновления, но определенно не конечным продуктом. Возможны и другие пути обновления».
Однако сообщество разработчиков WordPress не поддерживает откладывание этого обсуждения еще раз. Многие стремятся, наконец, ответить на вопрос, как метабоксы впишутся в контекст редактора Гутенберга, чтобы знать, как подготовиться. Учитывая многочисленные проблемы с подходом iframes, рендеринг устаревших метаблоков PHP в новом редакторе потребует дополнительных экспериментов и, возможно, альтернативного решения.
«Зачем тратить тысячи часов на разработку идеального редактора, если его нельзя сделать совместимым с существующими сайтами?» — сказал Хоффман. «Если первое впечатление состоит в том, что это ломает пользовательский интерфейс, от которого они зависят, пользователи никогда не увидят идеальный редактор».
«Я думаю, что было бы ошибкой откладывать это слишком далеко», — сказал главный коммиттер WordPress Аарон Джорбин. «Тем более, что многим организациям потребуется как минимум 1-2 квартала для подготовки».
Марк Каплун предлагает команде Gutenberg использовать популярный плагин в качестве показателя успеха текущих и будущих экспериментов по поддержке метабоксов.
«Мое продуктивное предложение — не объявлять метабоксы готовыми, пока Yoast SEO не работает в нем должным образом», — сказал Каплун. «Он немного сложен с точки зрения взаимодействия, и он установлен на охренительном количестве сайтов. Если Гутенберг не сможет с ним работать, вероятно, его никто не будет использовать».
Грег Шоппе, который тестировал и много писал о текущей разработке Гутенберга, присоединился к разговору, чтобы также отстаивать альтернативный подход Yoast к проекту.
«Я полностью поддерживаю точку зрения Йоаста на Гутенберга, — сказал Шоппе. «Мне неясно, как «обновить визуальный редактор» было переосмыслено командой Гутенберга как «замена всего интерфейса редактирования постов», но это кажется прямо противоречащим так называемому «Кораблю Тесея».
«В данном случае отсутствие четкого направления и поддержки существующих стандартных рабочих процессов сейчас активно вредит разработчикам. Как я могу продвигаться вперед по созданию проекта без надежного набора крючков и инструментов, на которые я могу положиться? Бессовестно думать, что такой крупный программный проект полностью перевернет стандартный рабочий процесс для разработчиков в одном обновлении. и безумие, что эти разговоры происходят только сейчас, в ноябре, когда планируется утвердить слияние в начале года».
Обсуждение подхода iframes к мета-полям, начатое вчера, все еще относительно новое, но до сих пор ответы команды Gutenberg не смогли адекватно решить проблемы сообщества разработчиков в этой ветке. Поиск подхода к мета-полям, который сохраняет мощные возможности CMS WordPress, не отталкивая пользователей и разработчиков, является одной из самых больших задач команды Gutenberg. Они по-прежнему стремятся подготовить предложение о слиянии в начале следующего года, но, поскольку мета-блоки все еще находятся на стадии экспериментов, ожидаемый график команды продолжает вызывать разногласия с сообществом разработчиков WordPress.
