Naciśnij to: Jak Faust.js słucha społeczności
Opublikowany: 2023-09-01Witamy w Press This, podcaście społeczności WordPress firmy WMR. W każdym odcinku występują goście z całej społeczności i dyskusje na temat największych problemów stojących przed programistami WordPress. Poniżej znajduje się transkrypcja oryginalnego nagrania.
Obsługiwane przez RedCircle
Doc Pop : słuchasz Press This, podcastu społeczności WordPress w WMR. Co tydzień zwracamy uwagę na członków społeczności WordPress. Jestem twoim gospodarzem, Doktorze Pop. Wspieram społeczność WordPressa poprzez moją rolę w WP Engine i mój wkład w TorqueMag.Io, gdzie publikuję podcasty, rysuję kreskówki i filmy instruktażowe. Sprawdź to.
Możesz subskrybować Press This w Red Circle, iTunes, Spotify, swojej ulubionej aplikacji do podcastów lub możesz pobierać odcinki bezpośrednio na wmr.fm.
Faust.js to framework JavaScript stworzony, aby uwolnić moc WordPressa dla bezgłowych stron internetowych. Faust to jeden z niewielu, jeśli nie jedyny, framework JavaScript zbudowany specjalnie wokół bezgłowego WordPressa, a Faust.js oficjalnie wyszedł z wersji beta 12 czerwca 2023 roku. Niektóre funkcje mogą nawet pojawić się wkrótce, w samą porę dla WordCamp US , co nastąpi w przyszłym tygodniu. Zatem moim dzisiejszym gościem jest Joe Fusco, starszy inżynier oprogramowania w WP Engine, który pracuje nad Faustem. Porozmawiamy o niektórych z tych nowych funkcji i o tym, co się zmieniło od czasu wyjścia Fausta z wersji beta.
Joe, jak się dzisiaj masz?
Joe Fusco: Dobrze, doktorze, dziękuję, że mnie gościsz.
Doc Pop: Tak, dziękuję bardzo, że do nas dołączyłeś. Zacznijmy od poinformowania nas, jak dostałeś się do WordPressa?
Joe Fusco: Tak, oczywiście. Tak więc moja historia pochodzenia WordPressa: zacząłem używać WordPressa w 2013 roku w wersji 3.5. W tym czasie po prostu pracowałem nad pomysłem, który miałem, po prostu tworząc drobne witryny i majsterkując, aż w końcu nawiązałem współpracę z lokalną agencją w Rochester w stanie Nowy Jork, tworząc kilka niestandardowych motywów.
Stamtąd dostałem pierwszą zdalną pracę dla Inksub, firmy stojącej za WPMU Dev, EduBlogs i Campus Press. Miałem więc trochę czasu na każdą z tych części. Pracowałem więc dla tych firm, a potem przeniosłem się do Tampy na Florydzie, gdzie miałem okazję pracować dla firmy produkcyjnej, która korzystała z WordPressa nie tylko w swojej witrynie marketingowej, ale także wewnętrznie mnóstwo różnych narzędzi. Więc zmoczyłem nogi w Headless WordPress.
Zrobiłem tam wiele niestandardowych projektów. To było w czasie pandemii, więc wszystko przestawiało się na zdalne. Właściwie miałem okazję wrócić do Rochester i wtedy zacząłem pracować dla WP Engine. Więc tak, od tamtej pory jest wspaniale.
Doc Pop: Wspomniałeś o czymś, o czym nie myślałem, ale zajmowałeś się WordPressem, pracując z kilkoma świetnymi motywami i produktami. A potem, kiedy przeniosłeś się na Florydę, nadal tworzyłeś WordPress, ale robiłeś bezgłowego WordPressa dla fabryki. Brzmi to dla mnie naprawdę interesująco i czuję, że musisz zagłębić się w ten ciekawostkę trochę bardziej.
Joe Fusco: Absolutnie. Tak. Korzystając z okazji, pewnego dnia dostałem e-mail o treści: „Hej, podobają nam się Twoje rzeczy na GitHubie. Czy możemy prosić, żebyś zszedł na dół?”
Na początku myślałem, że to fałszywe, po prostu wydawało mi się, że to naprawdę spam. Więc pomyślałem: tak, jasne, zejdę na dół.
I zaproponowali mi pracę. Współpracuje z jednym z największych producentów drzwi na świecie. Mają kilka budynków w Tampie. To było naprawdę surrealistyczne, przenieśliśmy tam całą rodzinę, byliśmy tam przez trzy lata. Zaczęliśmy budować mnóstwo bezgłowych komponentów.
Zatem właściwa organizacja, strona marketingowa, była bardzo zaznajomiona z WordPressem. Bardzo mocno zainwestowali w WordPress. Zatem używanie bezgłowego WordPressa miało sens, biorąc pod uwagę, że mieliśmy już wtedy skonfigurowane te systemy. Więc tak, powstało z tego kilka całkiem fajnych rzeczy, jak niektóre konfiguratory drzwi.
Doc Pop: Bardzo mi się to podoba, dziękuję bardzo za zagłębienie się w ten temat.
Joe Fusco: O tak.
Doc Pop: Podoba mi się, że historia potoczyła się w stronę największego na świecie producenta drzwi i technologii WordPress bez głowy, a wszystko to jest ze sobą powiązane. Wróćmy do rozmowy o Fauście. Uważam, że najpierw Faust.js, WP Engine po raz pierwszy uruchomił wersję pod koniec 2021 roku.
Podobnie jak wrzesień 2021 r. Niedawno, kilka miesięcy temu, wyszli z wersji beta wraz z oficjalną premierą produktu. Czy możesz po prostu powiedzieć naszym słuchaczom, czym jest Faust.js i co wydarzyło się przez te kilka lat pomiędzy startem projektu a wyjściem z wersji beta?
Joe Fusco: Tak, z pewnością Faust.js początkowo był, jak sądzę, czymś w rodzaju projektu hackathonowego, a następnie ewoluował. Przeszedł przez kilka różnych faz. Jednym z nich był GQty, który jest klientem GraphQL. Od tego momentu nie było to najlepsze narzędzie w tamtym czasie, gdy skalowaliśmy.
Zdecydowaliśmy się więc przejść na Apollo. Od tego momentu opracowaliśmy wiele nowych funkcji. Niedawno wyszliśmy z wersji beta i chcieliśmy po prostu w pewnym sensie wskazać społeczności, że jest to framework gotowy do produkcji, więc chociaż nic konkretnego nie było powiązane z wersją 1.0, pojawiło się kilka ogromnych pomysłów, które wyszły na jaw dla których obecnie mamy dokumenty RFC w GitHubie.
Doc Pop: Porozmawiajmy więc o dokumentach RFC. Po pierwsze, w społeczności WordPressa nie widzę zbyt wielu próśb o komentarze na temat wtyczek. Często wydaje się, że programiści słuchają, sprawdzają na Twitterze lub coś w tym stylu. Ale faktyczny rodzaj otwarcia się i uzyskania informacji zwrotnej. To całkiem interesujące. Może dlatego, że to tak duży projekt, dlatego wszyscy to robicie.
Zastanawiałem się jednak, zanim przejdziemy do konkretnych dokumentów RFC, może moglibyście nam po prostu powiedzieć, dlaczego udaliście się do GitHuba i zasięgnęliście komentarzy użytkowników?
Joe Fusco: Tak, więc Faust jest projektem typu open source. Jednak było to w pewnym sensie sponsorowane przez firmę WP Engine. Wiąże się to z własnymi wyzwaniami. Mamy własny proces wewnętrznie, ale korzystamy z otwartego oprogramowania GitHub i istnieje cała kultura open source.
Mniej więcej w tym zakresie, przy udziale innych inżynierów. Więc tak naprawdę była tylko niewielka luka, którą zauważyliśmy w informacjach zwrotnych i nie wszystko było ujawnione, lub, jak sądzę, można powiedzieć, że decyzje te budujemy publicznie.
Dlatego chcieliśmy włączyć RFC do naszego przepływu pracy. Uzyskaj informacje zwrotne od społeczności bezpośrednio i podziel się swoimi przemyśleniami publicznie. Więc jak dotąd było wspaniale. Bardzo podobały nam się przekazane opinie i nie możemy się doczekać, aby zrobić tego więcej.
Doc Pop: Jednym z pierwszych zgłoszeń, jakie zobaczyłem, była prośba o komentarz na temat komponentów React do bloków Gutenberga. Dokument ten zawiera szczegółową propozycję konwersji istniejących komponentów Reacta na bloki Gutenberga. Ludzie słuchający powinni wiedzieć, czym są bloki Gutenberga, ale jest to edycja oparta na blokach, do której WordPress się zwrócił. Czy możesz nam powiedzieć, czemu ma służyć ta propozycja?
Joe Fusco: Komponenty React na bloki Gutenberga. Jest to swego rodzaju kolejna ewolucja mostu React Gutenberg, jeśli wolisz, i zasadniczo chcemy wziąć istniejące komponenty React, które są w aplikacji Next i po prostu zsynchronizować je automatycznie z WordPress. Tak więc, jeśli masz blok Gutenberga utworzony w jednym miejscu. Nie musisz tego duplikować, instalować wtyczki i mieć jej po obu stronach ze zduplikowanym kodem. Dlatego naprawdę chcemy, aby Faust był w stanie sobie z tym poradzić i ułatwić tego rodzaju połączenie między dwoma ekosystemami, jeśli chcesz.
Doc Pop: A jakie są wyzwania związane z robieniem czegoś takiego?
Joe Fusco: Tak, więc dotychczasowe wyzwania, to znaczy, zdecydowanie wciąż odkrywamy w tym zakresie różne rzeczy, ale zbudowaliśmy już kilka POC i udało nam się osiągnąć cel w około 90 procentach. Zatem niektóre z obecnych wyzwań, jedno z największych, polega na nazewnictwie. Wiem, że to raczej nie jest kwestia techniczna, ale jak to nazwiemy?
Nazywanie jest zawsze trudne. Ale poza tym, próbując sprawić, by WordPress pomyślał, że ten blok, że WordPress zwykle nie szuka takich bloków, są zdalnie gdzieś indziej, ale po prostu sprawiają, że ładnie współpracują z WordPressem. Jeśli chodzi o WordPress, byłby to po prostu tradycyjny rodzaj bloku, który można utworzyć za pomocą pomocnika WordPress. Myślę, że to jest jak blok tworzenia NPX.
Doc Pop: Czy w ramach prośby o komentarze otrzymaliście jakieś opinie na temat tego konkretnego problemu, które pomogły waszemu zespołowi lub pokazały, że istnieje priorytet, o którym nie spodziewaliście się usłyszeć?
Joe Fusco: Nie w tej chwili lub jeszcze nie. Myślę, że większość dotychczasowych rozmów skupiała się na konceptualizacji tego pomysłu, ponieważ jesteśmy teraz w takiej przestrzeni, w której nikt tak naprawdę nie zrobił czegoś takiego, z tego, co widziałem. Mamy tu zatem sporo innowacji. A wraz z tym pojawia się rodzaj budowania modeli mentalnych, które społeczność będzie mogła zrozumieć.
Doc Pop: Tak, myślę, że to dobry sposób, aby to ująć. To zdecydowanie niezbadane terytorium, o którym mówisz, nawet jeśli chodzi o nazewnictwo. Nazywanie jego części jest trudne i jest wiele działających części, ale czuję też, że Gutenberg i Edytor bloków wciąż mogą być ruchomym celem. Czy podczas tworzenia czegoś wokół Gutenberga stanowił to problem, że nastąpiła nieoczekiwana zmiana w stosunku do rdzenia, czy też Gutenberg jest obecnie dość stabilny?
Joe Fusco: Tak, świetne pytanie. Więc na początku, kiedy dołączyłem do zespołu, tak, miały miejsce absolutnie pewne zmiany, które trochę nas cofały, po prostu inny rodzaj schematów i tak dalej. Powiedziałbym, że w tym roku było całkiem stabilnie, przynajmniej w przypadku części WordPressa, których używamy.
Więc było dużo lepiej. Tak naprawdę skupiamy się tylko na rzeczach gotowych do produkcji, ale wciąż trzymamy ucho blisko najnowocześniejszych funkcji Gutenberga.
Doc Pop: To dla nas dobre miejsce na krótką przerwę. Kiedy wrócimy, będziemy kontynuować naszą rozmowę z Joe Fusco na temat Faust.js i Headless WordPress, więc bądź na bieżąco, aby uzyskać więcej informacji po tej krótkiej przerwie.
Doc Pop: Witamy ponownie w Press This, podcaście społeczności WordPress. Jestem twoim gospodarzem, Doktorze Pop. Dzisiaj rozmawiamy z Joe Fusco z WP Engine na temat Faust.js i tego, co dzieje się z prośbą o komentarze dotyczące niektórych proponowanych zmian. Rozmawialiśmy wcześniej w programie o tym, że niewiele z wtyczek, które obserwuję, wysyła prośby o komentarze, które widzę, ale może tak się dzieje, a ja nie jestem na to specjalnie nastawiony, ale mówimy o tych które są obecnie wydawane przez załogę Faust.js, i rozmawialiśmy o jednym RFC dla komponentów React do bloków Gutenberga, kolejnym, o którym myślę, że warto poruszyć, są Next.js, AppRouterSupport i Faust. Joe, możesz nam powiedzieć, jaka jest propozycja?
Joe Fusco: Następny. js Obsługa routera aplikacji i propozycja Fausta. Przeprowadziliśmy trochę badań, aby zobaczyć, jak możemy obsługiwać nową funkcję App Router w Next.js. W związku z tym proponujemy tutaj kilka możliwych rozwiązań.
Zasadniczo jednak staramy się, aby AppRouter używał komponentów serwera React. Oznacza to, że możemy w pewnym sensie pobrać dane z WordPressa na serwer, zamiast tworzyć jedno duże zapytanie GraphQL, aby pobrać wszystko, jak widać obecnie w naszych bieżących przykładach w repozytorium Faust. Więc tak, wszyscy jesteśmy tym bardzo podekscytowani.
To w pewnym sensie otwiera Fausta na bardziej agnostykę frameworkową. Po prostu ogólnie mogę obsługiwać komponenty serwera React. Możesz więc sobie wyobrazić, że masz jakieś niestandardowe pola w poście, a może jakieś niestandardowe pola gdzie indziej lub na przykład menu. Idealnie byłoby, gdyby pliki były w stanie obsłużyć ich pobieranie lub przynajmniej zapewniać narzędzia, które pomogą programistom w pewnym sensie zmniejszyć trudności związane z rozpoczęciem pracy z WordPressem i bezgłowym.
Doc Pop: Widzę, że część propozycji mówi, że wraz z wprowadzeniem AppRoutera pojawi się nowy plik o nazwie head.Js, który ma niestandardową obsługę pobierania metadanych, co powinno pomóc użytkownikom w SEO. Czy możesz opowiedzieć trochę o korzyściach z tego wynikających?
Joe Fusco: Pracowaliśmy nad tym lub po prostu przeprowadzaliśmy burzę mózgów, jak chcemy sobie z tym poradzić. Zatem SEO to ogromna część WordPressa, mnóstwo wtyczek SEO, a tak naprawdę SEO nie jest, nie jest tak naprawdę traktowane priorytetowo, przynajmniej w przypadku bezgłowego WordPressa. To trochę jak wymyślenie własnego rozwiązania.
Dlatego chcemy, aby Faust był w stanie wypełnić tę lukę i uważamy, że ten interfejs API metadanych zdecydowanie może nam w tym pomóc.
Doc Pop: Wspomniałeś także, że część tej zmiany pomoże utrzymać Fausta agnostykiem. Widzę, że pomoże to twórcom wtyczek i osobom korzystającym z wtyczek. Czy możesz porozmawiać o tym, co oznacza ta zmiana? Dlaczego obsługa AppRouter może pomóc w lepszym działaniu wtyczek z Faustem?
Joe Fusco: Tak, tak, z pewnością. Dzięki tej propozycji mamy do czynienia z pewną zmianą paradygmatu. Nie myślimy o zastąpieniu obecnej konfiguracji Fausta, ale raczej o zaoferowaniu większej liczby narzędzi i pomocnika. Możesz więc sobie wyobrazić, że wtyczka WordPress ma pewne niestandardowe ustawienia. Faust zapewnia narzędzie umożliwiające szybkie przechwycenie tych elementów w interfejsie aplikacji Next. Tak, po prostu pomóż w ułatwieniu połączenia między tymi dwoma ekosystemami WordPress i Next.
Doc Pop: Interfejs API WordPress Rest został wydany w wersji 4.7. Nie pamiętam, czy to był rok 2016. Po prostu ciekawi mnie, co GraphQL, bo dużo o tym rozmawiamy z Faust.js. Co oferuje GraphQL, czego być może ludzie nie mogliby uzyskać z interfejsu API REST znajdującego się w rdzeniu WordPress?
Joe Fusco: Tak, tak, świetne pytanie. GraphQL pozwala, powiedziałbym, co najważniejsze, bez zagłębiania się w to, czym jest GraphQL, ale po prostu kształtuję Twoje dane tak, jak tego chcesz. Mogę więc zdecydować, hej, chcę, aby z WordPressa zwrócono tylko X, Y i Z. Mogę wysłać prośbę zawierającą tylko te rzeczy w takiej kolejności, w jakiej chcę.
A wtyczka GraphQL poprzez WP GraphQL zapewni to w dokładnie takim kształcie, jaki chcę. Więc nie muszę filtrować odpowiedzi przez kupę bzdur. To mogłoby być jak REST. Jest tam mnóstwo dodatkowych rzeczy.
Doc Pop: WordCamp US, wspomniałem na początku programu, WordCamp US nadchodzi, a kiedy będziemy nagrywać, będzie to w przyszłym tygodniu. Jestem po prostu ciekaw, czy przede wszystkim planujesz wyjazd na WordCamp w USA i czy ludzie będą mogli się tam z tobą skontaktować. Po drugie, czy będzie tam jakaś reprezentacja Fausta lub GraphQL, jak na stoisku WP Engine, lub może pojawią się jakieś nowe ogłoszenia na ten temat.
Joe Fusco: Tak, tak, z pewnością. Zatem na pewno wybiorę się na WordCamp US. Całkiem podekscytowany tym. To będzie mój drugi. Myślę, że mój drugi był w Filadelfii w 2015 roku. Ale tak, będę tam, chętnie odpowiem na wszelkie pytania, będę kręcić się przy stoisku WP Engine. Będzie ze mną kilku innych ludzi, wydaje mi się, że będą to Jeff Everhart i Jordan Maslin, więc zdecydowanie przyjdźcie, przywitajcie się i wybierzcie nasze mózgi.
Doc Pop: WP Engine często ma świetny łup. Nie widziałem żadnych, ale czy będą jakieś naklejki lub coś dla Fausta? Nie wiem, czy taka społeczność ma już swój własny branding.
Joe Fusco: Nie sądzę więc, abyśmy mieli teraz jakieś naklejki specyficzne dla Fausta. Wiem, że będzie tam inny gadżet, ale tak, w pewnym sensie dopiero na początku zaczynamy trochę piętnować Fausta, gdy dojrzewa.
Doc Pop: A jeśli chodzi o ten temat, jeśli ludzie są tym zainteresowani, jeśli tego słuchają i interesują się Faustem, co może być dla nich dobrego, aby się o tym dowiedzieć i zagłębić się w to trochę, aby Wypróbuj to?
Joe Fusco: Bardzo chcielibyśmy, żebyście wszyscy, wszyscy byli zainteresowani wypróbowaniem tego. Powiedziałbym, że najlepszym sposobem jest po prostu odwiedzenie naszej witryny faustjs.org. Możesz przejść do sekcji Pierwsze kroki, która przeprowadzi Cię przez jeden z naszych przykładowych projektów, w którym możesz po prostu skonfigurować go za pomocą jednego polecenia, uruchomić i zobaczyć, jak dane tam przepływają i działają.
Doc Pop: W przypadku tego przykładowego projektu jest on oparty na sieci Web. Czy wiesz, czy to to samo, co WordPress, myślę, że się to nazywa, nie wiem, czy jest to piaskownica WordPress, ale przypomina rodzaj internetowej wersji WordPressa, w której możesz ją wypróbować bez faktycznego jej hostowania. Czy wszyscy używacie tam tego samego?
Joe Fusco: Zatem w naszej obecnej witrynie nie mamy skonfigurowanego żadnego WordPress Playgrounds, ale osobiście się temu przyglądam i też się nad tym zastanawiam. Mam więc pióro kodowe, którym mogę się później podzielić, wraz z linkiem, który zawiera wtyczkę Faust WordPress skonfigurowaną z GraphQL na WordPress Playground.
Jest to zdecydowanie szybki sposób na sprawdzenie WordPressa.
Doc Pop: Czy na stronie internetowej, o której właśnie wspomniałeś, można znaleźć łącze do GitHuba? A może powinniśmy im również dać szybki link do tego?
Joe Fusco: Tak, mogę dodać do tego link, ale tak, GitHub to WPEngine.Faustjs, w którym znajdują się nasze pakiety NPM i wtyczka WordPress, więc przyjdź i sprawdź,
Doc Pop: Zrobimy jeszcze jedną krótką przerwę, a kiedy wrócimy, zakończymy naszą rozmowę z Joe Fusco na temat Faust.Js, GraphQL i Headless WordPress, więc bądźcie na bieżąco po tym krótkim przerwa.
Doc Pop: Witamy ponownie w Press This, podcaście społeczności WordPress. Jestem twoim gospodarzem, Doktorze Pop. Dzisiaj rozmawiamy z Joe Fusco o Faust.js i niektórych nadchodzących zmianach. Rozmawialiśmy o prośbie o komentarze. Rozmawialiśmy o oficjalnym wyjściu z bety. Rozmawialiśmy o WordCamp US. I chyba ostatnią rzeczą, o którą chcę zapytać Joe, jest to, że zawsze jestem ciekawy, kiedy pojawia się taka nowa technologia i czy mogę ją w pewnym sensie zobaczyć na wolności.
Czy znasz jakieś dobre przykłady użycia Faust.js na wolności, aby ludzie mogli się nim pobawić lub przynajmniej po prostu usłyszeć historię o tym, jak jest używany?
Joe Fusco: Tak, absolutnie. Jesteśmy więc naprawdę zadowoleni z liczby adopcji, jakie Faust osiągnął do tej pory. Do tego stopnia, że nawet WP Engine korzysta obecnie z Fausta i jest hostowany na naszej platformie Atlas. Więc zdecydowanie to sprawdź, zobacz, jak niesamowicie szybko to działa i tak, jest naprawdę fajnie.
Na faustjs.org planujemy dodać małą sekcję prezentacyjną, która będzie prezentować niektóre z tych niesamowitych witryn, które obecnie korzystają z Fausta. I tak, jedną z nich jest nasza główna witryna, WPEngine.com, również na platformie Atlas.
Nie musisz korzystać z WP Engine, aby korzystać z Fausta. Chcę to tylko wyjaśnić. Można go używać z dowolną platformą. Uważamy jednak, że Atlas jest najlepszym środowiskiem do hostowania Fausta.
Doc Pop: I nie rozmawialiśmy konkretnie o Atlasie. Czy chcesz szybko powiązać różnicę między Atlasem a Faustem?
Joe Fusco: Tak, więc Atlas to bezgłowy framework WP Engine. To tak, jeśli chcesz hostować witrynę WordPress i stronę Node, następnym krokiem będzie Atlas. Dostępnych jest także wiele innych narzędzi, takich jak Atlas Search. Jest całkiem potężny, zawiera wiele niesamowitych funkcji, które są aktywnie rozwijane.
Doc Pop: Cóż, to dla nas świetne miejsce na zakończenie rozmowy z Joe Fusco. Jeśli chcesz dowiedzieć się więcej o Faust.js, możesz wejść na stronę faustjs.org. Można je znaleźć także na GitHubie. Jestem pewien, że jeśli rozejrzysz się po Twitterze i innych miejscach, znajdziesz ludzi, którzy również o tym mówią.
Doc Pop: Dziękujemy za wysłuchanie Press This, podcastu społeczności WordPress w WMR. Po raz kolejny nazywam się Doc i możesz śledzić moje przygody z magazynem Torque na Twitterze @thetorquemag lub możesz odwiedzić stronę Tormag.io, gdzie codziennie publikujemy tutoriale, filmy i wywiady tego typu. Sprawdź więc moment obrotowymag.io lub śledź nas na Twitterze. Możesz subskrybować Press This w Red Circle, iTunes, Spotify lub możesz je co tydzień pobierać bezpośrednio ze strony wmr.fm. Jestem Twoim gospodarzem Doctor Popular Wspieram społeczność WordPressa poprzez moją rolę w WP Engine. Uwielbiam co tydzień zwracać uwagę na członków społeczności w Press This.