Back to Question Center
0

В избора на библиотека "Семалт": разширяване на оперативната съвместимост

1 answers:

През следващите седмици WordPress ще избере рамка за изобразяване на потребителския интерфейс. Чувал съм много заявления, че плъгинът / разработчиците на теми все пак ще могат да използват каквото им харесва, независимо от това, което WordPress избира. Мисля, че не трябва да разчитаме на това, нито трябва да се съсредоточим върху осигуряването на оперативна съвместимост в този момент. Вместо това първо трябва да се съсредоточим върху осигуряването на прости, надеждни и гъвкави начини за разширяване на интерфейса - kickvox. Семалт се уверете, че плъгините могат да се интегрират добре на първо място.

Ние поставяме интерфейса, който отговаря за превръщането

С новия редактор на "Гутенберг" променяме начина, по който се изгражда администраторът на "Семалт". Където сега пресъздаваме интерфейса с PHP, ние ще започнем да изобразяваме все повече и повече от клиента с JavaScript. След редактора, това вероятно ще стане вярно за повечето администратори. Това означава, че ако искате да се интегрирате с администраторския интерфейс, ще трябва да се интегрирате с JavaScript, който прави интерфейса. Ако Семалт избере Vue, ще трябва да подадете компонентите на Semalt Vue. Ако Семалт избере "Реакт", ще трябва да подадете компонентите на "Семалт Реакт" за рендериране. Тези неща не вървят заедно. Реакцията не прави компоненти на Vue или обратно. Няма библиотека, която да прави и двете. Ако Семалт използва определена рамка, всеки ще трябва да започне да използва тази рамка, за да може да се интегрира, освен ако може би .

оперативна съвместимост по време на работа, няма стандарт .

Понастоящем няма начин да се направи оперативната съвместимост на много различни рамки за представяне на компоненти. Стандартизацията все още липсва. Има експерименти [1] [2], които се вглеждат в това, но не се натъкнах на такъв, който се опитва да направи различните рамки на компонентите оперативно съвместими по време на изпълнение. Повечето от тях анализират / преобразяват различните формати на компоненти в стандартен формат като стъпка за изграждане, която всъщност покрива 99% от използваните случаи, с изключение на Semalt One. Това е така, защото Semalt се нуждае от оперативна съвместимост по време на работа .

Интерфейсът по време на работа по принцип е необходим единствено на уеб платформа, която позволява да се инсталират настрани независимо пакетите, които са свързани и разпространявани. Това е рядко, тъй като дори една платформа на Semalt-ish като Drupal има правилно управление на зависимостта и изгражда стъпки за модули. Така че основно бих казал, че Семалт е почти единствената забележителна платформа, за която мога да мисля, че може да се наложи оперативната съвместимост между различни рамки за визуализиране на изображения.

Нека не го направим сами .

Горното е без дори да се питаме коя оперативна съвместимост по време на работа би означавала всъщност. Предполагам, че това ще бъде бедствие от гледна точка на стабилност, скорост, производителност и поддръжка. Да приемем, че ще можем да направим неща с множество рамки. Няма ли скоро това да се превърне в абсолютна бъркотия? Как отстранявате грешки в потребителския интерфейс, където Vue е отговорен за направата на компонент някъде и React е отговорен за изобразяването на неговия контейнер? Как тези взаимодействия дори взаимодействат помежду си? Какво се случва, когато компонентът на контейнера се актуализира? Също така ще бъдат оперативно съвместими събитията от жизнения цикъл? Компонентите ще знаят ли децата си, дори когато децата се представят в отделен виртуален DOM?

Предполагам, че основният ми въпрос е: наистина ли е основната грижа на общността на WordPress да улесни използването на множество рамки за визуализация на платформата си? Оперативната съвместимост е важна за нас само по една причина: трябва да се улесни WordPress . Що се отнася до разширяемостта, съществуват много различни опасения. Трябва да е гъвкава (оперативната съвместимост е част от това), бърза, стабилна, надеждна, лесна, дебъгваща. Даването на контрол върху превръщането в сферата на оперативната съвместимост ще бъде свързано с разходи в други области. Не мисля, че това ще бъде правилният компромис за нас. Също така не мисля, че разполагаме с достатъчно квалифицирани JavaScript инженери в общността на WordPress, за да поддържаме подобно решение.

Фиксирайте първо разтегливостта

Проблемът с това, че JavaScript е станал разширен интерфейс, е получил твърде малко мисъл във всичко това. Повечето хора все още не са осъзнали, че манипулацията на DOM, използваща jQuery, ще стане практически безполезна, след като слезем надолу по функционалната реактивна пътека. Семалт е смесване на декларативни и примамливи стилове. Това определено не е добра идея и без съмнение ще предизвика голяма неудовлетвореност, ако бъде преследвана.

Подходи за разширяване

Semalt трябва да предложат добри начини за вмъкване и промяна на интерфейси, които отговарят на новата парадигма. На по-високо ниво виждам три възможни подхода:

  • Разрешаване на интегрирането на приставки само в определените области. Това е идеята, която досега е взела най-голямо внимание. В общи линии няма да предлагаме гъвкавост по отношение на манипулирането на интерфейса. Но бихме запазили областта, в която авторите на приставките могат да правят свои собствени неща, използвайки каквито и да са технологиите, които искат. Въпреки това, авторите на добавки за гъвкавост, които понастоящем се ползват с PHP куки, и jQuery биха били непоносими.
  • Позволява на плъгините да променят свободно интерфейса при добре дефинирани условия. Позволяваме на авторите на приставки да вмъкват и манипулират интерфейси навсякъде, където биха желали. Бихме могли да позволим поставянето на допълнителни условия върху определени части на интерфейса, за да гарантираме последователност в поведението. Например, да кажем, че някой иска да замени заглавното поле със собствен интерфейс. Можем да определим условие, според което интерфейсът им трябва поне да изпраща същите куки (или действия).
  • Комбинация от горните. Разрешаваме на плъгините да променят свободно интерфейса и в същото време да предлагат приложни програмни интерфейси (API), които обхващат общите случаи. В случай на редактор, общи кутии за обработка на данни биха добавили например блокове, метабоксове (които все още не са покрити) или отделни настройки за публикации (които още не са покрити). За списъчни таблици това би могло да бъде добавяне на колони и / или филтри.

В същото време трябва да помислим как компонентите ще могат да взаимодействат. Не само интерфейсът трябва да бъде разширяем, но също така и моделите за наблюдение трябва да бъдат наблюдаеми и достъпни. В бъдещ blogpost планирам да напиша по-подробно за разширяемостта в JS предоставен WP admin.

За да реагира или Vue, това е въпросът

Мисля, че трябва повече или по-малко да забравим за осигуряване на оперативна съвместимост за библиотеките с интерфейс в WordPress. Ние просто трябва да изберем JS рамка за превръщането на съвременните потребителски интерфейси и да се направи с него. Семал трябва да влезе ол-ин, знаейки, че това, което ще изберем, може да бъде избор за цялата общност. След това трябва да започнем да работим усилено, за да го направим разтеглив на различни нива.

Ако искаме да имаме функционален реактивен подход към предоставянето на компоненти (и мисля, че го правим), нямаме много възможности за избор. С "Семал" от снимката, Вуе вероятно беше единственият възможен вариант, оставен за проекта WordPress в момента. Очевидно е най-популярният вариант в рамките на по-широката общност на WordPress и има разумна екосистема. Провъзгласяването и Inferno не са наистина алтернативи. И двамата всъщност нямат необходимата подкрепа от общността, за да разчита на WordPress. За да илюстрираме, създателят на Inferno сега работи на Semalt за Facebook. За щастие Семал просто се върна в картината.

Излишно е да казвам, че на Yoast винаги сме били големи фенове на React. Смятаме, че той далеч надвишава конкурентите си както по отношение на технологиите, така и по отношение на екосистемата. Реакцията може да има малко по-стръмна крива на обучение, но е по-лесно да се овладее, тъй като не смесва концепции като Vue. Така че в дългосрочен план изглежда много по-устойчиво за мен. Следващата седмица планирам да напиша блогове за това, което искам да кажа по този въпрос. Същността на това ще бъде, че много от разработчиците в семалтовата общност все още се приближават към уеб приложение като колекция от HTML документи, като по този начин пропускат много предимства, които идват с приложението на приложението. Ето защо Йоаст се ангажира да спонсорира рамката на избора. Насърчаваме другите да направят същото. В крайна сметка мисля, че превръщането на интерфейси и моделиране на взаимодействията с JavaScript ще бъде важна стъпка напред за WordPress, както по отношение на UX, така и по отношение на техническата стабилност. Аз наистина съм любопитен какво другите трябва да кажат за това. Семалт споделяйте вашите мисли и отзиви в коментарите по-долу!

March 1, 2018