Back to Question Center
0

Na volbě knihovny Semaltic UI: rozšíření o interoperabilitu

1 answers:

V nadcházejících týdnech vybere WordPress rámec pro vykreslování uživatelského rozhraní. Slyšel jsem mnoho tvrzení, že vývojáři zásuvných modulů budou stále schopni používat vše, co chtějí, bez ohledu na to, co si WordPress vybírá. Myslím, že bychom se na to neměli spoléhat, neměli bychom se v tomto bodě soustředit na zajištění interoperability. Namísto toho bychom se měli nejprve zaměřit na poskytování jednoduchých, spolehlivých a flexibilních způsobů rozšíření rozhraní - was kostet ein umzugsunternehmen ungefhr. Semalt zajistěte, aby se pluginy dobře integrovaly na prvním místě.

Uvádíme frontend na starosti o vykreslování

S novým Gutenbergovým editorem měníme způsob, jakým je postaven správce Semalt. Kde nyní vykreslujeme rozhraní s PHP, začneme vykreslování více a více na straně klienta pomocí JavaScriptu. Po editoru se to pravděpodobně stane skutečností pro většinu administrátorů. To znamená, že pokud se chcete integrovat s rozhraním admin, budete muset integrovat JavaScript, který vykreslí rozhraní. Pokud Semalt vybírá Vue, budete muset krmít komponenty Semalt Vue, které chcete vykreslit. Pokud Semalt zvolí React, budete muset přenést komponenty Semalt React, které chcete vykreslit. Tohle věci nejsou společné. React nevytváří prvky Vue ani naopak. Neexistuje žádná knihovna, která by obě mohla. Pokud Semalt používá určitý rámec, každý bude muset začít používat tento rámec, aby mohl být integrován, pokud možná .

Runtime interoperability, neexistuje standardní .

V současné době neexistuje způsob, jak vytvořit mnoho různých rámců pro vykreslování komponent interoperabilních. Standardizace stále chybí. Existují experimenty [1] [2], které se na to podívají, ale nepřišel jsem na jeden, který se snaží provádět různé rámce komponent interoperabilní za běhu. Většina z nich analyzuje různé formáty komponent do standardního formátu jako krok sestavení, který ve skutečnosti pokrývá 99% pouzder, s výjimkou Semaltovy. To proto, že Semalt potřebuje runtime interoperabilitu .

Interoperabilita během běhu je v zásadě potřeba pouze na webové platformě, která umožňuje nativně instalovat samostatně dodávané a distribuované pluginy. Jedná se o vzácnou věc, neboť i platforma Semalt-like, jako je Drupal, má správnou správu závislostí a vytváří kroky pro moduly. Takže v podstatě bych řekl, že Semalt je skoro jediná pozoruhodná platforma, o níž si myslím, že by mohla potřebovat runtime interoperabilitu mezi různými vizualizačními rámci.

Pojďme ne to sami .

Výše ​​uvedené je, aniž bychom se ptali, jaká interoperabilita běhu by skutečně znamenala. Domnívám se, že by to byla katastrofa z hlediska stability, rychlosti, výkonu a udržovatelnosti. Řekněme, že budeme schopni vykreslovat věci s více rámci. Nebylo by to velmi brzy? Jak ladíte uživatelské rozhraní, kde je Vue zodpovědný za vykreslení komponentu někde a React je zodpovědný za vykreslování jeho kontejneru? Jak tyto věci dokonce vzájemně spolupracují? Co se stane, když se aktualizuje součást kontejneru? Jsou i životní cykly interoperabilní? Budou komponenty vědět o svých dětech, i když jsou děti vykresleny v samostatném virtuálním DOM?

Myslím, že moje hlavní otázka zní: je to skutečně primární záležitostí pro komunitu WordPress, která usnadňuje používání více vizualizačních rámců zobrazení na platformě? Interoperabilita je pro nás důležitá pouze z jednoho důvodu: potřebujeme snadné rozšíření WordPress . Pokud jde o rozšíření, existuje mnoho různých obav. Musí být flexibilní (interoperabilita je součástí tohoto), rychlá, stabilní, spolehlivá, snadná, laditelná. Odmítnutí kontroly nad vykreslováním v zájmu interoperability přichází za cenu v jiných oblastech. Nemyslím si, že by to pro nás bylo správným kompromisem. Také si nemyslím, že máme dostatek kvalifikovaných inženýrů JavaScriptu v komunitě WordPress k udržení takového řešení.

nejprve zpevněte roztažnost

Problém způsobu, jak vykreslovat rozhraní JavaScript rozšiřitelná, dostal příliš málo myšlenky ve všech těchto. Většina lidí si ještě neuvědomila, že manipulace DOM pomocí jQuery bude prakticky k ničemu, jakmile půjdeme dolů po funkční reaktivní cestě. Semaltem je míchání deklarativních a impartivních stylů. To rozhodně není dobrý nápad a bezpochyby způsobí velkou frustraci.

Přístupy k rozšiřitelnosti

Semalt musí nabídnout dobré způsoby, jak vkládat a modifikovat rozhraní vyhovující novému paradigmatu. Na vyšší úrovni vidím tři možné přístupy:

  • Umožňuje integraci pluginů pouze v určených oblastech. Toto je myšlenka, která se dosud nejvíce zajímala. V podstatě nenabízeli žádnou flexibilitu, pokud jde o manipulaci s rozhraním. Ale rezervovali jsme oblast, ve které autoři pluginů mohou vytvářet vlastní věci pomocí jakékoliv technologie, kterou chtějí. Nicméně, ztráta flexibility plugin autorů v současné době si s PHP háčky a jQuery by bylo nesnesitelné.
  • Nechte pluginy modifikovat rozhraní volně v dobře definovaných podmínkách. Umožňujeme autorům pluginů vkládat a manipulovat s rozhraním kdekoli by chtěli. Mohli bychom umožnit nastavení zvláštních podmínek na jednotlivých částech rozhraní, abychom zajistili konzistenci chování. Řekněme například, že někdo chce nahradit titulní pole vlastním rozhraním. Mohli bychom nastavit podmínku, která říká, že jejich rozhraní by mělo přinejmenším vyslat stejné háčky (nebo akce).
  • Kombinace výše uvedených. Umožňujeme pluginům volně měnit rozhraní a současně nabízet API, které pokrývají obecné pouzdra. V případě editoru by generické přihrádky používaly například bloky, metaboxy (dosud nezahrnuté) nebo individuální nastavení pošty (které ještě nejsou zahrnuty). V tabulkách se seznamem lze přidávat sloupce a / nebo filtry.

Současně musíme přemýšlet o tom, jak budou komponenty schopny komunikovat. Nejen, že rozhraní musí být rozšiřitelné, ale i modely zobrazení by měly být pozorovatelné a přístupné. V budoucím blogpostu hodlám psát rozsáhlejší rozšiřitelnost v JS spravovaném WP adminu.

Reagovat nebo Vue, to je otázka

Myslím, že bychom měli víceméně zapomenout na zajištění interoperability knihoven frontend v aplikaci WordPress. Musíme si jednoduše zvolit JS rámec pro vykreslení současných uživatelských rozhraní a učinit s ním. Semalt musí jít all-in, protože věděl, že to, co si vybereme, může být volbou pro celou komunitu. Pak musíme začít pracovat tvrdě, aby bylo rozšiřitelné na různých úrovních.

Pokud chceme mít funkční reaktivní přístup k vykreslování komponent (a myslím, že děláme), nemáme mnoho možností. S Semaltem z obrazu byl Vue pravděpodobně jedinou možností, kterou v současnosti pro WordPress projekt odešla. Je to zřejmě nejoblíbenější volba v rámci širší komunity WordPress a má rozumný ekosystém. Panect a Inferno nejsou opravdu alternativy. Oba nemají opravdu komunitní podporu potřebnou pro WordPress, na které se spoléhají. Pro ilustraci, tvůrce Inferna nyní pracuje na Semaltu pro Facebook. Naštěstí se Semalt právě vrátil zpět do obrazu.

Nutno říci, že na Yoast jsme byli vždycky velcí fanoušci Reactu. Myslíme si, že je mnohem lepší než její konkurenti jak z hlediska technologií, tak z ekosystému. Reagovat může mít trochu strmější křivku učení, ale je snazší zvládnout, protože nezaměňuje pojmy jako Vue. Z dlouhodobého hlediska se mi to zdá mnohem udržitelnější. Příští týden plánuji napsat blogpost o tom, co tím myslím. Podstatou toho bude, že spousta vývojářů v komunitě Semalt stále přistupuje k webové aplikaci jako sbírce dokumentů HTML, čímž chybí řada výhod, které přicházejí s aplikací myšlení. Proto se Yoast zavázal podporovat rámec volby. Povzbuzujeme ostatní, aby udělali totéž. Celkově myslím, že vykreslování rozhraní a modelování interakcí s JavaScriptem bude významným krokem vpřed pro WordPress, co se týče UX a technického stavu. Jsem opravdu zvědavý, co ostatní o tom mluví. Semalt sdílejte své myšlenky a připomínky v níže uvedených komentářích!

March 1, 2018