WordPress explorează o abordare agnostică a cadrului JavaScript pentru construirea blocurilor Gutenberg
Publicat: 2017-09-23
Discuția privind selecția cadrului JavaScript de la WordPress continuă pe canalul #core-js Slack înainte de întâlnirea de săptămâna viitoare. Unul dintre subiectele mai recente este posibilitatea redării blocurilor agnostice de cadru pentru Gutenberg, care ar permite dezvoltatorilor să extindă noul editor folosind orice bibliotecă JS pe care o preferă. Aceasta înseamnă că blocurile Gutenberg, care sunt denumite în mod colocvial „Gutenblocks”, ar putea fi construite cu Vue, React, Preact, Angular sau orice altceva dezvoltatorul se simte confortabil să folosească.
Susținătorii acestei idei susțin că urmărirea unei abordări mai flexibile face ca decizia de bază a cadrului JS a WordPress să fie mai puțin critică. În timp ce răspundea la întrebări de pe canalul #core-js, Gary Pendergast a explicat cum ar putea fi construit Gutenberg pentru a menține separarea.
„Chiar nu glumesc când spun că această decizie nu contează, chiar și pentru oamenii care contribuie la Gutenberg”, a spus Pendergast. „În #2463, biblioteca este tratată în întregime ca o bibliotecă de utilitate, la fel cum folosim lodash, de exemplu. Îndeplinește o mână de sarcini și poate fi scos și înlocuit relativ ușor cu ceva complet diferit, fără a perturba restul bazei de cod. Pentru oamenii care contribuie la Gutenberg, ei contribuie în stilul de codificare Gutenberg, nu în stilul oricărei biblioteci pe care se întâmplă să o importăm.”
Când a fost întrebat despre o cronologie pentru momentul în care va fi luată decizia și ce factori sunt luați în considerare, Pendergast a răspuns că nu există o cronologie și că cei interesați să participe ar trebui să scrie un blog despre experiențele lor și să scrie exemple de lucruri pe care le pot construi cu cadrele JS pe care le pot construi. sunt familiarizati cu.
„Nu există nici foaie de parcurs, nici cronologie și nici nu trebuie să existe”, a spus Pendergast. „După cum a menționat Matt, este de fapt doar o decizie tehnică – decizia importantă pentru comunitatea mai largă a fost alegerea „nu React”. Din păcate, această decizie a fost disproporționată și puternic confundată cu „cu ce bibliotecă JS îmi voi putea construi pluginurile?” și uneori „cu ce practici ale bibliotecii JS vor semăna blocurile Gutenberg?”, niciuna dintre ele nu are legătură. Tweeturile și postările care o tratează ca pe o cursă de cai nu sunt de ajutor în acest fel.”
Pendergast a spus că orice bibliotecă este selectată va „continua să fie cuprinsă de elementul WordPress, biblioteca de bază nu va fi expusă”. Echipa Gutenberg lucrează pentru a elimina toate dependențele de bibliotecă din componentele sale, astfel încât dezvoltatorii de pluginuri să poată folosi orice bibliotecă pe care o aleg.
Cu toate acestea, alți membri ai comunității nu sunt atât de dornici să relegă biblioteca JS selectată ca bază într-o simplă bibliotecă de decizie tehnică sau de utilitate.
„Majoritatea dezvoltatorilor înțeleg că pluginurile lor nu sunt legate de cadrul ales pentru core/Gutenberg”, a spus Kevin Hoffman. „Dar asta nu diminuează semnificația deciziei. Dacă vrem să încurajăm mai mulți contribuitori, ne-ar fi bine să alegem un cadru în care o majoritate semnificativă să se simtă capabilă și încrezătoare. Dacă această majoritate dezvoltă plugin-uri cu un cadru și trebuie să învețe altul pentru a contribui la core, atunci limităm numărul potențialilor contribuitori.”
Peter Booker susține că, oricât de elegantă este separarea lui Gutenberg, o înțelegere decentă a bibliotecii alese ca bază afectează capacitatea dezvoltatorilor de a depana în profunzime anumite probleme.
„Nu cred că ar trebui să disprețuim atât de mult alegerea ca o decizie tehnică minoră”, a spus Booker. „Înțelegerea modului în care funcționează PHP, JavaScript și Backbone (printre altele) este esențială pentru a putea depana corect problemele cu WordPress. Cadrul JS ales pentru Gutenberg va avea un impact asupra multor oameni, chiar dacă nu suntem contribuitori principali. Va fi cunoștințe esențiale pentru a putea depana complet problemele. Aceasta este o decizie care va afecta mult mai mulți oameni decât doar echipa Gutenberg.”

Care sunt implicațiile furnizării unei abordări flexibile, agnostice de cadru pentru construirea Gutenblocks?
Jason Bahl a întrebat dacă cineva a încercat să amestece React, Preact, Vue și Angular într-o singură aplicație pentru a vedea dacă este „o rețetă pentru un coșmar de performanță”. El a prezentat un exemplu de scenariu în care Gravity Forms construiește Gutenblocks bazate pe Vue, Yoast are blocuri bazate pe React, WooCommerce construiește blocuri cu Preact și un alt plugin folosește Ember.
„Sună frumos să fii flexibil și să le permiti oamenilor să folosească orice, dar, de asemenea, ar putea duce la o mulțime de diviziuni privind cele mai bune practici și, eventual, probleme de performanță”, a spus Bahl. „Vom vedea că apar tutoriale despre cum să construiți Gutenblocks în Vue, React, Preact, Ember, Vanilla JS etc., ceea ce ar fi grozav de văzut, dar și confuz și potențial să provoace o nouă divizare în comunitate și cele mai bune practici acceptate. . Flexibilitatea este plăcută într-o anumită măsură, dar o părere puternică la un anumit nivel este de asemenea bună.”
Carl Hancock, co-fondatorul Gravity Forms, susține că oferirea unei abordări agnostice de cadru pentru construirea Gutenblocks va avea o influență redusă asupra dezvoltatorilor care extind proiectul. Decizia nu poate fi luată mai puțin critică oferind mai multă flexibilitate, deoarece dezvoltatorii vor adopta inevitabil orice folosește nucleul WordPress.
„Oamenii vor sfârși prin a adopta orice utilizări de bază în cea mai mare parte, în ciuda curcubeelor și fluturașilor pe care unii susțin, deoarece se referă la crearea unui strat de abstractizare, astfel încât dezvoltatorii de pluginuri/teme să poată folosi ceea ce doresc”, a spus Hancock. „Ceea ce înseamnă că oricât de complex va fi acel cadru de bază va avea un impact direct asupra barierei de intrare pentru dezvoltatorii de pluginuri și teme. Această barieră în calea intrării a fost scăzută din punct de vedere istoric până în prezent și a contribuit direct la creșterea WordPress ca CMS auto-găzduit. Ridicarea dramatică a acestei bariere la intrare nu este neapărat un lucru rău. De exemplu, Gravity Forms va folosi Preact, Vue, oricare ar fi, pentru că avem forța de muncă și setul de abilități pentru a face acest lucru, când ne vom putea decide în sfârșit să facem acest lucru odată ce core ia decizia.”
Oportunitatea WordPress de a promova web-ul
WordPress alimentează în prezent 28% din toate site-urile web, conform W3 Techs, și orice cadru va alege va avea un impact major asupra bibliotecii pe care mulți dezvoltatori decid să învețe pentru a extinde software-ul și a-și avansa în cariera.
Matias Ventura, unul dintre liderii tehnici ai proiectului Gutenberg, a încurajat participanții la discuție să privească imaginea de ansamblu și să profite de oportunitatea de a lucra împreună și de a colabora la o soluție pentru WordPress care va promova web-ul. Eforturile echipei de a colabora cu reprezentanții din cadrele concurente se deosebesc într-un ecosistem care este în general fragmentat și instabil.
„Sunt încântat de oportunitatea pe care o avem de a avansa dezvoltarea web în ceea ce privește reprezentarea JavaScript UI, într-un mod similar cu modul în care WordPress a fost o forță motrice pentru standardele web în ultimul deceniu”, a spus Ventura. „De asemenea, aici văd că avem o responsabilitate ca proiect, deoarece oamenii vor continua să învețe dezvoltarea web prin WP. Mulți oameni au fost introduși în PHP prin WordPress, inițial doar interacționând cu funcțiile și API-urile WP, în cele din urmă mergând puțin mai adânc în limbaj, după cum este necesar. Văd că nucleul nostru rămâne aproape de limbajul JS, deoarece acesta oferă cel mai semnificativ instrument de învățat, acoperind toate cadrele și bibliotecile.”
Ventura i-a asigurat pe participanții la discuția în curs că echipa Gutenberg ascultă și lucrează la o soluție care va împinge web-ul înainte.
„Suntem absolut conștienți de faptul că modul în care construim și ceea ce oferim prin Gutenberg va afecta comunitatea dezvoltatorilor și nu luăm acest lucru cu ușurință, dimpotrivă”, a spus Ventura. „Am vorbit cu Evan (Vue) și Jason (Preact) pentru că, în loc să organizez un concurs „alegeți-vă cadrul”, aceasta pare o oportunitate de a colabora și de a împinge internetul.”
