Postmortem запуска Gutenberg, поэтому мы можем принять Gutenberg как продукт
Опубликовано: 2022-03-10Спустя 10 месяцев после того, как Гутенберг был выпущен в качестве нового редактора WordPress по умолчанию, значительное количество людей из сообщества веб-разработчиков по-прежнему игнорирует Гутенберга, которые часто ссылаются в качестве причин для игнорирования его отсутствия поддержки специальных возможностей (даже несмотря на то, что основные улучшения специальных возможностей были предприняты). месте), насколько он медленный (хотя теперь он работает намного быстрее) и ряд других недовольств. Эта пессимистическая реакция на Гутенберга наиболее очевидна в онлайн-статьях, демонстрирующих возможности Гутенберга, которые, вместо того, чтобы вызвать положительную реакцию читателей, в основном вызывают презрение (что отражается в потоке негативных комментариев).
Многие люди, кажется, злятся «на Гутенберга» (мы скоро увидим, что такое Гутенберг на самом деле), заявляя, что Гутенберга никогда не должно было быть или, по крайней мере, никогда не должно было быть интегрировано в ядро WordPress по умолчанию, или, по крайней мере, не так скоро. У разных людей разные причины выступать против Гутенберга, причем некоторые из них имеют более личное значение, чем другие. Например, некоторые люди столкнулись с тем, что их средства к существованию оказались под угрозой из-за того, что они усердно работали, чтобы специализироваться на определенном решении, которое из-за появления Гутенберга находится под угрозой исчезновения (например, любой, кто работает с этим или другим брендом конструкторов страниц). Я действительно могу понять, почему эти люди злятся на Гутенберга, и я им сочувствую.
Тем не менее, я также считаю, что бесконечно злиться на Гутенберга и отмахиваться от всего этого — даже не задумываясь, стоит ли вообще его использовать — неразумный подход. Когда он был первоначально запущен, я был категорически против Гутенберга, думая, что он не готов, и эта позиция продержалась несколько месяцев. Однако в последнее время я обнаружил, что использую Гутенберг все больше и больше, и я даже могу утверждать, что в настоящее время я действительно получаю от этого удовольствие. Хотя вначале я и сам был немного зол «на Гутенберга», я позволил своему гневу уйти, и теперь я действительно могу извлечь из этого пользу.
В этой статье я попытаюсь изменить повествование, в котором чаще всего изображают Гутенберга. Я перечислю, что пошло не так в прошлом, и опишу, чем был Гутенберг и что он из себя представляет, после чего я могу с уверенностью представить Гутенберга в выгодном свете. Я также утверждаю, что Гутенберг уже является положительной силой, и поэтому он заслуживает того, чтобы ему дали еще один шанс (если вы еще этого не сделали).
Что такое Гутенберг на самом деле
С моей точки зрения, самая важная причина, по которой Гутенберг не получил более широкого признания, заключается в том, что, когда люди говорят о Гутенберге, они приравнивают его не к одному, а фактически к двум сущностям (которые путают друг с другом), а именно:
- Гутенберг, запуск;
- Гутенберг, продукт.
Gutenberg как «продукт» — это сам плагин/функциональность. Гутенберг как «запуск» — это процесс, который включал первоначальную разработку и выпуск Гутенберга, возможно, начавшийся, когда основатель WordPress Мэтт Мулленвег представил Гутенберга широкой аудитории в июне 2017 года во время WordCamp Europe 2017, и закончившийся в начале декабря 2018 года, когда был выпущен WordPress 5.0. выпущенный с Гутенбергом, объединенным с ним.
(После запуска начался новый этап, который продолжается до сегодняшнего дня: «Цикл непрерывной доставки Гутенберга». Однако этот этап сильно отличается от «Гутенберга запуска», так как с ним не было серьезных проблем, и поскольку таким образом, это не создает неправильного представления о «Гутенберге как продукте». По этой причине нет необходимости говорить об этом в этой статье.)
Мы должны различать две сущности: «запуск» и «продукт». Таким образом, я надеюсь, что отныне, когда мы ссылаемся на «Гутенберг», это неизменно означает «Гутенберг, продукт», и если мы хотим сослаться на «Гутенберг, запуск», мы должны явно назвать его (возможно, используя любой из его вариантов). , например «начальная разработка/выпуск Гутенберга» или подобные фразы). Самое главное, мы должны воздерживаться от смешивания запуска и продукта в одном пакете: упоминание любого фактора, способствовавшего разочаровывающему запуску Гутенберга, в качестве причины не использовать Гутенберг в наших проектах, должно быть постепенно прекращено, а Гутенберг как продукт следует оценивать. только против собственных качеств. Это справедливо по отношению к продукту Гутенберга.
Я считаю, что, хотя «Гутенберг-запуск» подвергался справедливой критике, постоянное презрение к Гутенбергу-продукту было несправедливым (даже если оно было оправданным), и что Гутенберг-продукт сам по себе является жертвой запятнанной репутации. на имя «Гутенберг» во время его разочаровывающего запуска. Например, при поиске «Гутенберг» в каталоге плагинов WordPress, поскольку алгоритм, определяющий ранжирование плагинов, влияет на рейтинг плагинов, Гутенберг появляется только на 10-й позиции. Однако многих 1-звездочных рейтингов не было бы, если бы Гутенберг не был объединен с ядром; если бы он изначально был выпущен только как плагин и подождал бы, пока самые важные ошибки и проблемы (такие как отсутствие доступности) не будут решены, прежде чем объединяться с ядром, то его рейтинг сегодня был бы выше.
Если мы сможем разделить две сущности (запуск и продукт) и работать с ними по отдельности, то, с одной стороны, мы сможем провести вскрытие того, что пошло не так во время запуска Гутенберга, и передать эти знания в текущую непрерывную поставку. цикл, чтобы не повторялись одни и те же ошибки (действительно, похоже, это уже происходит, о чем я расскажу ниже); с другой стороны, мы можем позволить себе оценить Гутенберга как продукт, добавить его в наши стеки и, надеюсь, извлечь из него пользу.
Я сделаю именно это, со своей точки зрения.
Что пошло не так во время запуска Gutenberg
Одним словом, команда, руководившая процессом, все испортила (это вежливый способ сказать).
WordPress 5.0 с интегрированным в него Гутенбергом был запущен в начале декабря 2018 года, как раз перед WordCamp US. Запускать его тогда было неправильным решением по очень простой причине: Гутенберг еще не был готов. В частности, ситуация с доступностью была очень ужасной: Гутенберг был почти бесполезен из-за устройств доступности, таких как программы чтения с экрана, что фактически делало любого, кто зависел от таких устройств, неспособным использовать редактор WordPress. И поскольку сообщество WordPress активно защищает права каждого (буквально каждого) на доступ к Интернету, этот поспешный запуск не был хорошо воспринят.
У Мэтта Малленвега (руководившего процессом выпуска) могли быть веские причины быть непреклонным в отношении запуска именно в этот день, что, например, могло иметь смысл с точки зрения бизнеса. Тем не менее, это, конечно, не имело смысла с точки зрения сообщества. Действительно, многие члены сообщества чувствовали себя обманутыми, жалуясь на то, что им нужно торопиться протестировать сайты своих клиентов, несмотря на то, что они были в отпуске. Можно с уверенностью сказать, что для многих такой преждевременный запуск был воспринят как крушение (даже если программное обеспечение работало нормально, так что никакого Y2K на самом деле не произошло), что вызвало ненужное недовольство, и которого можно было бы вполне избежать, либо отложив при запуске или сначала выпустив Gutenberg в виде плагина, который будет объединен с ядром на более позднем, более стабильном этапе.
Стоили ли боль, отчаяние и разочарование, причиненные сообществу, затраченных усилий? Думаю, большинство людей скажут, что это не так. Я абсолютно уверен, что это не так. На мой взгляд, подобного рода ситуаций, когда действие совершается вопреки воле большинства членов сообщества, следует избегать в будущем (если только для этого нет действительно веских причин, даже если с ними согласны не все; если было ли дело с запуском Гутенбера, я не знаю, так как я не знаю какой-либо действительно веской причины, чтобы оправдать это).
В своей презентации во время того же WordCamp в США Мэтт Малленвег признал, что при запуске Гутенберга были допущены ошибки, и что он усвоил урок, так что, надеюсь, эти ошибки больше не повторятся. Думаю, мы можем принять его извинения и верить, что его решения в следующий раз будут правильными (хотя с тех пор произошли новые ссоры на не менее важные темы). Однако ущерб уже нанесен: открылась рана, на заживление которой может потребоваться время, поэтому сообщество будет менее доверчивым, пока полностью не восстановится доверие к руководству WordPress.
Почему сейчас все кажется намного лучше
Теперь хорошие новости: положение дел, похоже, в основном приняло положительное направление, и перечисленные ниже улучшения уже произошли.
Улучшенная связь
Одной из самых громких жалоб на запуск Гутенберга было отсутствие связи со стороны руководства. Поскольку не было создано надлежащих каналов для управления проектом и информирования о его решениях (по крайней мере, не всесторонне), было трудно получить точную картину общей ситуации. (Например, информация от разных авторов или команд публиковалась разными способами, в том числе неофициальными, такими как личные блоги.)
Эта забота была значительно улучшена. В частности, количество информации в блогах make (где взаимодействуют различные сообщества, чтобы принять решения относительно WordPress для различных областей, таких как ядро, доступность, дизайн, интернационализация и другие) и частота обновления информации. увеличивается, и каждая команда проводит регулярные встречи в Slack (в основном еженедельно или раз в две недели), в которых может участвовать любой, у кого есть учетная запись пользователя WordPress.org. По опыту некоторых членов сообщества, теперь можно надежно следить за развитием событий по какой-либо теме и иметь достаточно информации, чтобы принять участие.
Последствия запуска Гутенберга также побудили Мэтта Малленвега расширить руководство WordPress двумя новыми ролями: исполнительным директором, чтобы контролировать и направлять все команды участников в их работе по созданию и поддержке WordPress, и руководителем отдела маркетинга и коммуникаций, чтобы возглавить маркетинговую команду. и следить за улучшением WordPress.org, связанных веб-сайтов и всех его торговых точек (к сожалению, человек, назначенный на эту роль, вскоре ушел, поэтому нужно найти кого-то другого, чтобы занять эту должность).
Команда Triage сформирована для решения открытых вопросов
На начальном этапе разработки Gutenberg несколько человек жаловались, что существующие ошибки, которых накопилось несколько тысяч, следует исправить, прежде чем рисковать добавлять новые функции в WordPress.
В марте этого года была сформирована команда сортировки для очистки открытых проблем в системе отслеживания ошибок WordPress Trac. Это кропотливая работа, которая нужна на протяжении многих лет. Если это когда-либо будет завершено, у WordPress будет возможность переключиться с Trac на более современный инструмент для отслеживания ошибок, такой как GitHub.
Доступность постепенно перестает быть проблемой
Проблемы доступности решаются в каждом новом выпуске Gutenberg, а версия 6.3 обеспечивает львиную долю улучшений. При нынешних темпах улучшения самые нерешенные проблемы доступности (как сообщается в аудите доступности Гутенберга) скоро должны стать частью прошлого.
Судить Гутенберга по его собственным достоинствам
Теперь, когда мы отделили запуск Gutenberg от продукта Gutenberg, мы можем приступить к анализу Gutenberg как продукта и решить, стоит ли добавлять его в наш стек приложений, основываясь исключительно на его достоинствах и недостатках. Многие люди справедливо указывают на проблемы Гутенберга как на причину не доверять ему (вместо того, чтобы сосредоточиться на неудачном запуске). Тем не менее, Гутенберг совершенствуется как на дрожжах, и многие из критикуемых проблем, возможно, были решены или могут быть на грани решения. Таким образом, отрицательные оценки должны иметь дату истечения срока действия и подлежать повторной оценке. Если мы сможем дать Гутенбергу новую попытку и посмотреть, как обстоят дела в наши дни, мы можем оценить, что, в конце концов, это не так уж и плохо. На мой взгляд, Гутенберг заслуживает более теплого приема, чем сейчас.
Я поражен тем, что Гутенберг до сих пор сравнивают с предыдущим способом редактирования контента в WordPress (в основном с помощью tinymce, но также с помощью шорткодов, виджетов и прочего), утверждая, что кодировать с помощью Гутенберга сложнее. Это может быть правдой, но это также упускает суть: Гутенберг здесь не для того, чтобы предоставить новый способ кодирования нашего приложения, производя те же функции, что и в прошлом; вместо этого он здесь, чтобы значительно улучшить то, что можно сделать, предлагая добавить в наши приложения функции, о которых в прошлом можно было только мечтать. Кроме того, Гутенберг — это не очередной конструктор страниц. Действительно, сравнение Gutenberg с Divi или Beaver Builder также упускает суть, потому что это все равно, что сравнивать Victorinox с обычным ножом: да, вы можете создавать сайты/страницы с помощью Gutenberg (на самом деле еще нет, но это уже работа в прогресс), но это лишь одно из многих его применений; есть несколько других применений, которые изначально скрыты, но как только вы вытащите их из своего отсека и поймете, как они работают, откроется новый мир возможностей. Ниже я опишу некоторые из этих новых возможностей, которые предлагает Гутенберг.
Во-первых, давайте обсудим, что не так уж хорошо в Гутенберге. Я считаю, что единственное, в чем Гутенберг действительно может считаться вредным, — это крутая кривая изучения React (который является библиотекой JavaScript, с которой написан Гутенберг). WordPress всегда был очень инклюзивным, позволяя людям любого происхождения (не только программистам, но и нетехническим специалистам, таким как блоггеры, маркетологи, продавцы и т. д.) создавать тему или плагин или запускать сайт. Вне всякого сомнения, это уже не так, и несправедливо ожидать, что всем придется изучать React для создания блока Гутенберга (это не обязательно так, поскольку мы также можем создавать блоки с помощью других библиотек JavaScript и даже без использования JavaScript). , например, через блоки ACF, однако использование React является наиболее логичным вариантом хотя бы потому, что Gutenberg закодирован с ним). Единственный аргумент, который мог бы оправдать этот недостаток, заключается в том, что он улучшает работу пользователя. Посмотрим, можно ли это считать таковым.
Как я утверждал в своей предыдущей статье, блочная архитектура от Гутенберга радикально меняет способ создания приложений: вместо того, чтобы думать в HTML-коде, теперь мы можем мыслить с точки зрения компонентов как единицы для создания веб-сайта. Эта архитектура более удобна в сопровождении и отказоустойчива, поскольку каждый компонент (или блок) может разрабатываться и тестироваться независимо, а поскольку ее легко использовать повторно, она может снизить стоимость разработки нескольких приложений. Действительно, недавняя популярность библиотек JavaScript, таких как Vue и React, во многом объясняется их поддержкой компонентов. Это замечательная функция, которую любят разработчики, и я считаю, что после того, как вы начнете программировать, пути назад уже не будет.
В этой же статье я также описываю, как Гутенберг может поддерживать стратегию «Создать один раз, публиковать везде» (также известную как «COPE»), позволяющую создать единый источник достоверного контента для подачи во все наши приложения, в зависимости от того, для чего они предназначены. среда или платформа, на которой они работают: Интернет, электронная почта/новостные бюллетени, приложения для iOS/Android, виртуальная/дополненная реальность, домашние помощники (например, Amazon Alexa) и другие. Поскольку это значительно упрощает общее управление контентом, COPE также позволяет снизить затраты на создание контента для различных платформ. Когда я впервые написал свою статью, я теоретизировал, что это можно сделать. Однако недавно я реализовал COPE для WordPress, и он работает просто великолепно! (Ожидайте другую статью, в которой я подробно объясню, как это работает.)
Сочетание COPE и API-интерфейсов WordPress (WP REST API, WPGraphQL и мой собственный API-интерфейс PoP) станет убедительной причиной для управления всем нашим контентом для всех наших приложений через WordPress. Другой убедительной причиной будет простота использования Гутенберга (которая еще не полностью реализована, но при нынешних темпах развития она появится раньше, чем позже), позволяющая конечному пользователю создавать сложный контент очень простым способом.
У нас уже есть доступ к замечательным новым функциям, таким как предварительный просмотр содержимого в режиме реального времени, копирование/вставка из Документов Google с идеальным форматированием, создание сложных слоев сетки с вложенными элементами внутри и многие другие. Мы также можем ожидать, что новые блоки предоставят совершенно неожиданные функции, о которых мы даже не догадывались. Ставлю на то, что благодаря Гутенбергу WordPress станет управляющим цифровыми активами в Интернете. (Я уже написал статью, которая скоро будет опубликована здесь, в Smashing Magazine, по этой теме и по моему обоснованию этого смелого заявления.)
Кроме того, Gutenberg позволяет повторно использовать код с другими CMS или фреймворками (например, для Drupal и Laravel), так что кодирование для WordPress больше не нужно ограничивать WordPress, что еще раз позволяет нам снизить стоимость разработки библиотеки, которая должен работать в как можно большем количестве систем (например, компания, обеспечивающая интеграцию своего API для множества различных платформ и языков, таких как Stripe, может извлечь из этого пользу). В настоящее время повторно используется только клиентский код (JavaScript и CSS), однако серверный PHP-код также может быть повторно использован. (Я снова скоро опубликую статью о Smashing, объясняющую, как это сделать.)
Эти функции уже стали реальностью, и мы можем ожидать, что Гутенберг предоставит гораздо больше веских причин для своего существования в ближайшие годы (по словам Мэтта Малленвега, Гутенберг в настоящее время реализовал лишь около 10% своего потенциала).
Наконец-то мы можем попытаться вынести вердикт продукту Gutenberg: моя позиция заключается в том, что он устанавливает более высокий барьер для входа в WordPress, что вызывает сожаление, однако это также прекрасно спроектированная часть программного обеспечения, которая предоставляет WordPress новые возможности и возможности. , из-за известности WordPress в мире веб-разработки в целом. И между этим компромиссом между затратами и преимуществами я считаю, что использование Гутенберга как части WordPress скорее того стоит, чем нет. Надеюсь, вы согласитесь с моим мнением, а если нет, то по крайней мере доводы против него могут основываться исключительно на характеристиках Гутенберга как продукта.
Заключение
Gutenberg в настоящее время находится в лучшем виде — он начал предоставлять восхитительный пользовательский интерфейс, который раньше был невозможен с WordPress. Однако не все осознают этот факт, потому что не все могут взяться за Гутенберга. Это досадное обстоятельство, потому что Гутенберг (как продукт) не следует обвинять в ошибках, допущенных во время запуска Гутенберга. Если мы сможем разделить эти две сущности и рассматривать каждую из них независимо, мы сможем убедительно попросить людей дать Гутенбергу еще один шанс , предполагая, что Гутенберг как продукт стоит иметь, даже если запуск Гутенберга был неудачным процессом.
В этой статье я провел вскрытие неудачного запуска Гутенберга, основываясь на собственном понимании событий. Проведение такого вскрытия может помочь сообществу и руководству убедиться, что эти досадные ошибки больше не повторятся. После вскрытия я приступил к оценке Гутенберга на основе его собственных достоинств и заявил о своей позиции: я считаю, что Гутенберг — отличный инструмент, и сообщество WordPress, безусловно, может извлечь из него пользу. И поскольку он будет становиться все лучше и лучше, Гутенберг может даже открыть новую золотую эру для WordPress.