Авторы плагинов WordPress должны избегать путаницы при именовании блоков

Опубликовано: 2020-09-04

4 мая команда разработчиков StudioPress внесла небольшое, но важное изменение, ориентированное на пользователя, в свой плагин Atomic Blocks (теперь переименованный в Genesis Blocks). Он удалил брендинг «AB» из заголовков своих блоков. Это незначительное обновление изменило названия блоков, такие как AB Accordion и AB Button, на Accordion и Button соответственно. На первый взгляд, это изменение, вероятно, не имело большого значения для разработчиков проекта. Однако по крайней мере для одного пользователя это создало огромную рабочую нагрузку.

Если бы пользователи неукоснительно следили за коммитами кода GitHub, они бы пропустили это обновление. Вместе с несколькими другими изменениями кода для, казалось бы, не связанной заявки команда оставила сообщение, которое гласило: «Удалите ненужные буквы «AB» из заголовков блоков».

Это изменение вошло в версию 2.8.2 плагина, которая была запущена днем ​​позже.

Проблема заключалась в том, что в журнале изменений не было сообщения об этом. У пользователей не было никаких указаний на то, что блоки из плагина переименовываются. Как правило, это не имело бы большого значения, поскольку команда надстройки просто убрала префикс «AB» из заголовков, которые в остальном не изменились. Однако что происходит, когда заголовок одного из этих блоков совпадает с заголовком основного блока?

Это была проблема, с которой столкнулся Маркус Тибесар. Блок AB Button внезапно стал блоком Button. Думая, что он использует основную кнопку WordPress, он широко использовал ее на своем сайте. Добавьте к этому его решение отказаться от плагина после того, как StudioPress переименовал свой плагин в Genesis Blocks, его очистка стала чем-то вроде катастрофы.

«Я использую блок «Кнопка» уже несколько месяцев только для того, чтобы обнаружить, что на самом деле я использую блок кнопок «Атомные блоки»! — написал Тибесар в комментарии к посту о ребрендинге Atomic Blocks.

Теоретически ему нужно было обновить только те устаревшие блоки из Atomic Blocks, которые он сознательно использовал. Но он застрял с блоками, которые он неосознанно добавил к своим сообщениям и страницам не по своей вине.

Этот конкретный сценарий усугубился тем, что WordPress 5.4, выпущенный 31 марта, представил новый блок «Кнопки» (во множественном числе). Старый блок с одной кнопкой был удален из обычного модуля вставки. Хотя не все проблемы с именами блоков настолько запутаны, все же возникает вопрос: как авторы плагинов могут избежать подобных проблем с пользовательским интерфейсом?

Легко свалить вину на StudioPress — и команде, возможно, стоило бы отругать за то, что она не была ясной в отношении изменения, когда оно произошло. Тем не менее, это приводит к нескольким вещам, которые необходимо выяснить большому сообществу WordPress. Во-первых, нужно ли авторам плагинов использовать согласованную схему именования с префиксом для своих блоков. Во-вторых, что может сделать WordPress, чтобы смягчить проблемы.

Приставка ко всем вещам

Скриншот добавления блоков кнопок из нескольких плагинов в редактор.
Кнопки, кнопки и еще раз кнопки.

Это распространенная поговорка в мире разработки WordPress, верно ? Рекомендации по префиксам и пространствам имен обычно применяются к реальному коду, где и возникают конфликты. Однако бывают случаи, когда использование префикса для общедоступного текста является оправданным.

И это времена, когда плагины используют общее пространство.

Редактор блоков — одно из таких общих пространств. Поскольку в каталоге появляется все больше и больше блочных плагинов, авторам плагинов пора задуматься о том, как схемы именования блоков влияют на конечных пользователей. Проблема, безусловно, не ограничивается блоками Atomic/Genesis. Это постоянная тенденция с несколькими плагинами библиотеки блоков. Некоторые работают лучше, чем другие, но каждый раз, когда пользователь устанавливает такой плагин, возникает проблема.

Самый простой способ для авторов плагинов — просто добавить перед всеми пользовательскими блоками фирменный знак своей компании (например, кнопку AB). С другой стороны, не каждый блок имеет общий заголовок с одним из основных блоков. Например, блок под названием «Карусель товаров» может не нуждаться в дальнейшем отличии от других блоков. Маловероятно, что конечные пользователи используют несколько плагинов электронной коммерции с блоками с одинаковым названием.

«Все, повторяю все, должны иметь префикс», — сказал Тибесар. «Префиксы устраняют любую путаницу в отношении того, выбираем ли мы, пользователи, основной блок или сторонний блок. Самые популярные плагины появляются вверху списка, и непонятно, откуда они взялись, когда префиксы отсутствуют».

По крайней мере, сторонние блоки должны иметь префикс, если их заголовки совпадают с одним из основных блоков. Например, конечные пользователи не должны видеть два разных блока обложки в средстве вставки блоков. Вместо этого они должны увидеть основную обложку и второй блок с уникальным названием. Префикс - это простой способ сделать это. Но я мог бы жить с чем угодно, что не вызывает путаницы у пользователей.

Обнаружение случаев использования блока

Скриншот прототипа экрана «Управление блоками» для WordPress.
Экран управления блоками.

В конце 2019 года команда Gutenberg выпустила первый прототип потенциальной области управления блоками для администратора WordPress. Экран «Управление блоками» из прототипа демонстрировал область, которая позволяла пользователям управлять каждым блоком на своем сайте. Одним из наиболее важных элементов информации на этом экране был счетчик «Экземпляров», который отображал количество использований блока. Кроме того, он связан с экраном с каждым сообщением, в котором есть определенный блок.

Одна из причин важности этой функции заключается в том, что она позволит конечным пользователям находить сообщения, которые они могут захотеть очистить. Используя блок Atomic/Genesis Button в качестве примера, Тибесар мог отследить все эти старые способы использования и внести любые изменения, которые он хотел.

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

Поскольку этой функции еще нет в ядре, ему пришлось обратиться к плагину Find My Blocks, который помог ему определить 22 поста и страницы, где он по незнанию использовал блок Button из Atomic/Genesis Blocks. В долгосрочной перспективе это то, что нужно обрабатывать непосредственно в WordPress. Вряд ли это будет последний раз, когда пользователю нужно навести порядок и избавиться от старых блоков.