В 2014 году ведущий разработчик Pods Скотт Кингсли Кларк взял на себя основную ведущую роль в проекте пользовательского интерфейса метаданных. В 2015 году проект пользовательского интерфейса Metadata был возрожден как Fields API .
API полей был разработан для того, чтобы можно было регистрировать поля на разных экранах в области администрирования через единый API. Новые мета-поля и поля внутри них могут быть добавлены к сообщениям, а новые разделы и поля могут быть добавлены на экран профиля.
Целью API является интеграция со всеми различными экранами администратора, включая сообщения, условия, пользователей, мультимедиа и комментарии, и обеспечение стандартизации.
Кларк руководит проектом в течение трех лет и, несмотря на возобновление интереса в прошлом году, объявил на канале Slack проекта, что уходит в отставку.
С тяжелым сердцем я должен передать эстафету этому проекту. После сотен часов моего времени я больше не верю, что могу внести изменения в ядро WordPress.
Видение Fields API было слишком масштабным, слишком сложным для любого человека. Я так глубоко верю, что WordPress нужен Fields API, но путь к тому, где мы находимся с Fields API, был долгим и трудным.
По правде говоря, я сгорел много лет назад, когда строил первый и второй прототипы. Не все были согласны с тем, как создавать архитектуру кода, он претерпел множество изменений на основе отзывов основных участников. Я просто не мог привлечь достаточно людей, я не мог найти достаточно компаний и людей, заинтересованных в его поддержке.
Мне нужно дать шанс кому-то другому, я его опускаю. Если в будущем кто-то возьмет на себя ведущую роль, я буду рад помочь там, где я могу. Но я не могу продолжать руководить предложением / проектом Fields API. Прошу прощения, примите мои извинения, и я надеюсь, что вы простите меня за то, что я не смог довести этот проект до финиша. Я по-прежнему считаю, что это жизненно важная часть будущего успеха WordPress.
Скотт Кингсли Кларк
Испытания и невзгоды руководства проектом с открытым исходным кодом
В следующем интервью Кларк объясняет, почему он чувствует себя лично ответственным за отсутствие прогресса в проекте, почему API важен для будущего WordPress, и размышляет о том, что он мог бы сделать иначе.
Вы хотите передать эстафету кому-то конкретному?
Нет, я не уверен, у кого будет сила и влияние, чтобы довести проект до конца. Это крупномасштабный проект, к которому следует подходить с долгосрочным видением, но достаточно маленькими шагами, чтобы он стал ядром WordPress. Об этом многого просить у кого-то, это также не является приоритетом для людей прямо сейчас, поскольку они отвлекаются на Гутенберга, который выйдет в ближайшем будущем.
Почему Fields API жизненно важна для будущего WordPress?
Сегодня люди смотрят на WordPress и задаются вопросом, как они выжили без REST API. Ну, по крайней мере, я знаю, что знаю! То же самое можно сказать и о Fields API, хотя его еще нет. Существует так много случаев, когда создавать решения для WordPress с использованием всех различных ловушек сложно.
Для единообразия – это дикий запад. Вы регистрируете мета-поле и заполняете его всем, что хотите. Вам нужен собственный CSS для стилизации полей формы, и у каждого свое представление о том, как должен выглядеть этот интерфейс. Вы отвечаете за свои собственные адаптивные макеты, удобные для мобильных устройств, вам просто нужно со всем справиться самостоятельно. Вы должны иметь возможность настраивать внешний вид, но каждое место, куда вы хотите добавить поле или форму, действительно должно иметь соответствующий API.
В долгосрочной перспективе представьте себе регистрацию полей в WordPress, как если бы вы регистрировали типы сообщений. Представьте, что поля и их конфигурации доступны для REST API и доступны через приложение WordPress или другие пользовательские приложения.
Весь мир открывается, потому что у вас есть согласованный API, весь мир имеет смысл, потому что у вас есть согласованный интерфейс для этих полей на различных экранах редактирования. Сообщения, условия, комментарии, пользователи, мультимедиа и даже настройщик будут иметь один и тот же базовый API для добавления групп, панелей и полей на свои экраны.
Если бы Gutenberg был выполнен после того, как появился Fields API, миграция для людей была бы не такой сложной.Gutenberg мог бы автоматически отображать все интерфейсы Fields API, как это делается для обратной совместимости с мета-блоком. Это тоже выглядело бы намного лучше.
Потратив некоторое время на размышление, что бы вы могли сделать по-другому, чтобы больше основных участников поддержали проект и сделали его более приоритетным?
Я не уверен, это тонкий баланс между принятием вклада и уверенностью в конечном результате. Сначала отзывы касались того, что API был чужим для WordPress, они спросили, может ли он быть похож по структуре на другие API, такие как Customizer.
Мы отказались от кода и перестроили его с нуля как форк Customizer, он даже поддерживал настройщик, использующий также Fields API. На пике разработки у нас были реализованы все области API полей.
Основные выпуски продвигались довольно быстро, было много изменений кода от выпуска WordPress к выпуску, за которыми нам приходилось следить, потому что мы, по сути, создали проект, который был гигантским патчем для WordPress.
Не было достаточно хуков, чтобы делать то, что нам нужно, и многие разделы не были расширяемыми из-за решений кода, которые помечались как «окончательные», что означает, что вы не можете расширить конкретный класс для настройки того, как он работает.
Хотел бы я быть на всех больших WordCamp в США и Европе, по сути лоббируя эту функцию. Собирая сторонников и тому подобное, это в некотором смысле похоже на политику. Я торчал на собраниях разработчиков Core, пытаясь поднять этот вопрос. Я попытался узаконить эту функцию, имея специальный канал в официальном WordPress Slack, размещая обновления на https://make.wordpress.org/core/ и проводя еженедельные встречи.
В конце концов, я расставил приоритеты во времени на разработку, а не на сбор войск. Это был провал, я начал быстро выгорать после нескольких первых переписываний, так как у меня было много других обязанностей, помимо Fields API.
Не похоже, что компании легко захотят платить вам за работу над таким проектом на неопределенный срок, хотя и WebDevStudios, и 10up дали мне время, чтобы продвинуть его вперед. Это не был пустой чек, в какой-то момент мне пришлось вернуться к оплачиваемой работе. С тех пор все это было в моем свободном времени, и мне было трудно справиться с этим в периоды финансового стресса и продажи / покупки дома.
В ядре есть спрос на Fields API, но недостаточно рук для его создания. Как вы думаете, почему это так?
Все сосредоточены на другом. В WordPress есть множество областей, требующих внимания людей. Есть такие вещи, как доступность, которые заслуживают гораздо большего внимания, чем получают. Но мне кажется, что основное внимание уделяется Gutenberg и REST API.
В частности, Гутенберг был огромной потерей времени для людей, вносящих свой вклад и людей, реализующих его. Это действительно большая функция. Он определенно больше по масштабу, чем Fields API, это как совершенно новое приложение, которое живет в WordPress. Интеграция с ним потребовала большого образования и проб / ошибок. В центре внимания людей сейчас то место, где они должны быть. Очень жаль, что Гутенберг опередил Fields API с точки зрения приоритета и уровня интереса.
Какой совет вы дали бы следующему руководителю проекта Fields API?
Это большой проект, все захотят сказать, что он должен быть определенным. Вы должны оценить варианты и для начала предложить что-нибудь на размер корки. Развивайте это, но никогда не упускайте из виду долгосрочную цель интеграции всех экранов WordPress. Даже интерфейсные формы комментариев могут успешно развиваться с помощью Fields API.
Почему вы чувствуете личную ответственность за то, что проект не является основным приоритетом?
В какой-то момент у нас был импульс. У нас было по крайней мере три-четыре человека, которые были активными. Он развалился, потому что у меня не хватило времени. Это моя близорукость, это моя вина. Я потратил сотни часов на разработку проекта за пару лет. Мне следовало бы оставить себе гораздо больше времени на систематизацию текста предложения функций и поддержание огня в сердцах наших участников.
Учитывая время и усилия, которые вы вложили в проект в последние несколько лет, чувствуете ли вы какое-нибудь облегчение, передавая факел?
Если факел передадут или подберут, мне станет на тонну лучше. Главное облегчение состоит в том, что мне официально больше не приходится нести эту тяжесть в одиночестве. Пытаться и потерпеть неудачу – это нормально, хотя это все равно печально.
Я надеюсь, что кто-то или какая-то компания подойдет и потратит на это время. Они даже могли разжечь огонь в моем собственном сердце, который сам выгорел. На данный момент у меня на одну важную задачу меньше. У меня все еще есть здоровенная тарелка, но она уже не такая тяжелая ноша.
Хотя ближайшее будущее проекта неясно, тем, кто хочет взять его во владение, рекомендуется прочитать сообщения, помеченные тегом Fields API на Make.WordPress.Core, чтобы узнать о его истории. Вы также можете проверить страницу проекта на Github .
Если вы заинтересованы в том, чтобы взять на себя управление проектом, вы можете связаться с Кларком в Twitter , Slack или через его веб-сайт .