Press This: Znaczenie nowoczesnych narzędzi i zautomatyzowanego testowania w programowaniu WordPress z Joshem Pollockiem
Opublikowany: 2022-05-12Witamy w Press This, podkaście społeczności WordPress firmy WMR. Tutaj gospodarz David Vogelpohl siada z gośćmi z całej społeczności, aby porozmawiać o największych problemach, przed którymi stoją programiści WordPress. Poniżej znajduje się transkrypcja oryginalnego nagrania.
Obsługiwane przez RedCircle
David Vogelpohl: Witam wszystkich i zapraszam do Press This, podcastów społeczności WordPress na temat WMR. To jest twój gospodarz, David Vogelpohl, wspieram społeczność WordPressa poprzez moją rolę w WP Engine i uwielbiam przedstawiać to, co najlepsze w społeczności, co tydzień w prasie to jako przypomnienie, możesz mnie znaleźć na Twitterze @wpdavidv lub możesz zasubskrybować, aby nacisnąć ten przycisk w iTunes, iHeartRadio, Spotify lub pobrać najnowsze odcinki z wmr.fm. W tym odcinku będziemy rozmawiać o znaczeniu nowoczesnych narzędzi, zautomatyzowanych testów i rozwoju WordPressa, oczywiście i dołączymy do nas w tej rozmowie. Chciałbym zaprosić do prasy tego pana Josha Pollocka. Josh, witaj.
Josh Pollock: Dziękuję. Dziękuje za gościnę. Jak się masz?
DV: Dobrze, dobrze. Jestem naprawdę podekscytowany. mieć cię na koncertach. Rozmawialiśmy trochę przed nagraniem, że jesteś najbardziej, myślę, że najsłynniejszy Pollock WordPress ze wszystkich Pollocków, prawda?
JP: w porównaniu do mniej znanego Jacksona Pollocka, ale tak, więc nie było
DV: Nie tak sławny WordPress jak ty. Więc myślę, że masz tam Jacksona.
JP: prawda? Tak. Jestem jednak fanem jego twórczości.
DV: Ach, dobrze się tego nauczyć. Jednak dla tych, którzy słuchają, a Josh będzie mówił o dzisiejszym dniu. Josh przychodzi do nas z kilku różnych obszarów, ale szczególnie koncentruje się na maszynie podłączanej. Porozmawiamy trochę o tym, ale także o jego przemyśleniach na temat tego, dlaczego nowoczesne narzędzia programistyczne i automatyczne testowanie są bardzo ważne dla rozwoju WordPressa. Więc jeśli jesteś programistą kowbojem lub kowbojką, Josh opowie trochę o tym, dlaczego inna ścieżka może być lepsza. Niektóre z jego ulubionych narzędzi do tego i jak podejść do automatycznego testowania z własnymi projektami programistycznymi WordPress. Zanim do tego przejdziemy, chciałbym przypomnieć ludziom, o których wiem, że prawdopodobnie słyszeliście to w poprzednich odcinkach. 25 kwietnia 2022 r. WP Engine organizuje naszą wirtualną konferencję dekodowania. Lubię to sprawdzić. Dowiedz się więcej o programowaniu WordPress na różne tematy. Możesz odwiedzać wydarzenia na WP engine.com forward slash decode dash 2022 W porządku, Josh, zadam ci pierwsze pytanie, które zadałem wszystkim moim gościom. Czy możesz pokrótce opowiedzieć mi swoją historię pochodzenia WordPressa? Kiedy po raz pierwszy użyłeś WordPressa?
JP: Tak, używam WordPressa chyba po raz pierwszy. Powiedzmy, że 2011 2012 piszę bloga, jak na wordpress.com, wtedy podoba Ci się Google, jak coś zrobić, a oni byli jak wklejanie czegoś do funkcji kropka php. Musiałem więc polubić przejście na WordPressa z własnym hostingiem i nie sądzę, żebym kiedykolwiek pracował nad tym blogiem. Naprawdę rozproszył mnie fragment kodu. I to doprowadziło mnie do społeczności WordPressa i wolontariatu z zespołem zajmującym się recenzowaniem motywów, a potem mam zamiar pracować w pods, która jest wtyczką, która lubi niestandardowe pola i niestandardowe typy postów i ma do tego interfejs użytkownika, a ja mam pracę jako osoba wspierająca tam. Karta Scott Kingsley, główny programista i wszyscy inni naprawdę mnie wspierają i pomogli mi nauczyć się, jak programować, i od tego momentu naprawdę zacząłem się rozwijać. To super.
DV: Kiedy po raz pierwszy rozproszył Cię kod, o którym mówiłeś, że w 2011 lub 12 roku próbowałeś założyć bloga? Czy to było jak zaraz potem, czy?
JP: Tak, tak, więc byłem jak WordPress 2.7, myślę, że była to pierwsza wersja, nad którą pracowałem. To znaczy, myślę, że pierwsza wersja, której użyłem, i myślę, że pierwsza wersja, do której się przyczyniłem, była jak trzy kropki.
DV: A więc tak, w 2011 roku byłoby to tuż po typie postu niestandardowego. To byłby ekscytujący czas na WordPress. Myślę z 237 kilku dziwnych odcinków, które zrobiłem. Jesteś pierwszą historią pochodzenia wordpress.com. Więc myślę, że możesz mieć to wyróżnienie i wszyscy ludzie, z którymi rozmawiałem przez te lata, ale to całkiem fajne, że zacząłeś tam. W blogosferze. A potem szybko przeszedłem na stronę rozwoju, jako naprawdę interesującą. Wspomniałem wcześniej w tym roku z maszyną wtyczek, czy możesz nam powiedzieć, co robi maszyna wtyczek i co tam robisz?
JP: Tak, więc to jest nowy produkt, który rozwijam, wiesz, to jest moje, wiesz, to moje solo. Rzecz, którą buduję, jakbym był teraz niezależnym programistą, na przykład, pomiędzy częściami tej historii spotkałem ludzi, którzy przez jakiś czas pracowali nad wtyczką o nazwie wycinak formularzy w firmie otaczającej to. A potem zrobiłem kilka prac w przestrzeni WordPressa i teraz jestem niezależnym programistą. I wiele razy buduję wtyczki WordPress do witryn WordPress. Jakbym nie był kimś, do kogo chciałbyś się udać i być kimś, muszę zbudować witrynę dla mojej firmy. Jakbym zbudował dla niego fajną funkcjonalność. Ktoś inny zbuduje nam motyw lub cokolwiek, a do tego w moich własnych projektach, ciągle się rozłączałem, jak uruchomić tę wtyczkę? Tak jak chcę mieć bloki i chcę się upewnić, że używam skryptów WordPress, takich jak nowe narzędzie do kompilacji kodu JavaScript, w tym kodu React i sposób, w jaki działa, jest zgodny z WordPress. Od razu. To standard WordPressa. To było jak rozwidlenie ostatniego projektu, nad którym pracowałem w kółko.
DV: To początek całego świetnego oprogramowania, prawda?
JP: Tak. Więc to doprowadziło do tego, co teraz nazywam maszyną do podłączania, która jest narzędziem, które robi kilka rzeczy. Po pierwsze, pomaga uruchamiać wtyczki, tak jak tworzy cały potrzebny kod ze wszystkimi poprawnymi konwencjami nazewnictwa w zależnościach, aby robić takie rzeczy, jak używanie kompozytora do automatycznego ładowania PHP w zależnościach lub używanie skryptów WordPress dla swoich bloków. Wszystkie te różne rodzaje rzeczy. I to sprawiło, że zawsze miałem obsesję na punkcie ruchomych części błędów w rozwoju, automatycznych testów, tworzenia odpowiedniego pliku zip, który zawiera wszystkie właściwe pliki, które chcesz tam umieścić, ale nie te, które chcesz nie chcę. Podobnie jak twoje testy, które chcesz zainstalować. Więc loguję maszyny, tego rodzaju kompletne narzędzie do uruchamiania wtyczek, dodawania funkcji do wtyczek, muszę dodać blok i stronę menu Dane, a następnie stworzyć ostateczną wersję pakietu, która może przejść do witryny WordPress.
DV: I zatwierdź ramy programistyczne dla wtyczek. Myślę, że gdybym musiał to opisać w kilku słowach. Czy to w porządku?
JP: to świetnie. Zapiszę to. Nie, nie, właśnie dlatego uwielbiam publikować podcasty, takie jak jesteś, masz świetny sposób na uproszczenie tego, tak jak jest to platforma programistyczna dla wtyczek WordPress, jakby to była usługa hostowana i CLI że używasz interfejsu, w którym możesz klikać, tak jak chcę używać niestandardowych typów postów i chcę używać bloków, a następnie, gdy jesteś we wtyczce, możesz wiedzieć, wpisywać szybkie polecenia, takie jak plug in machine, wtyczki, zip grants, plik zip twojej kieszeni.
DV: Tego typu rzeczy. Więc uwielbiam, gdy oprogramowanie oczywiście pochodzi z potrzeby i w sposób przyzwyczajony, i to jest trochę interesujące usłyszeć historię pochodzenia maszyny wtyczek, doceniasz, że nadal się jej trzymasz, ale tak jakby wychodzisz i ty”. to coś w rodzaju domowego podejścia, a więc jak twoja podróż, która zaczęła się od wordpress.com, tak, dosłownie żadna strona z kodem nie będzie szybko przechodzić w bardziej zaawansowany rozwój. Więc pomóż mi zrozumieć naszych odbiorców, a nawet zrozumieć, kiedy mówisz o nowoczesnych narzędziach z programowaniem WordPress, co to dla Ciebie oznacza i dlaczego jest to ważne?
JP: Tak. Tak więc tylko w kontekście tego, w jaki sposób jestem zaakceptowany, do kogo się zwracam, mówię: jestem, wiesz, programistą wtyczek do WordPressa, a ty będziesz programistą aplikacji internetowych, mówię o tworzeniu wtyczek WordPress, niestandardowych wtyczek dla Twojej witryny. Może to być unikalna wtyczka, która robi coś, co nie istnieje, wiesz, rozszerza WooCommerce w jakiś wyjątkowy i interesujący sposób dla Twojej firmy lub wtyczki, które ludzie opracowują w celu dystrybucji open source lub sprzedaży. A więc kiedy to robisz, nie wiesz, jak kiedy zacząłem budować wtyczki, takie jak Hello, wątpię, to tylko jeden plik. Tak naprawdę nie potrzebujesz do tego niczego specjalnego. Ale wraz ze wzrostem złożoności zaczynasz mieć zautomatyzowane zależności, właśnie chcesz użyć programu do pakowania skryptów WordPress, chcesz użyć pakietu komponentów WordPress, który będziesz używać tych samych danych wejściowych i wybrać rodzaj kontrolek formularzy, o których wie Gutenberg. Gdy to zrobisz, zaczniesz potrzebować czegoś, co może automatycznie zainstalować coś takiego jak NPM lub przędza, a następnie potrzebujesz narzędzia, które może automatycznie uruchomić proces kompilacji, aby utworzyć bezpieczny dla przeglądarki JavaScript, skrypty internetowe. A potem zaczynasz wchodzić w to, co nazywamy testowaniem automatycznym, gdzie piszemy dodatkowy kod, który uruchamia nasz kod, aby upewnić się, że działa on we właściwy sposób. I jest tam dużo złożoności i myślę, że to utrudnia, ponieważ uczysz się tych narzędzi i uczysz się ich używać w tym samym czasie i uczysz się dwóch rzeczy naraz
DV: To było interesujące, ponieważ słysząc jak to opisujesz, użyj słowa „automatyzuj to” dla każdego pojedynczego punktu, kiedy mówiłeś o nowoczesnym, który lubiłeś, wiesz, instalując pakiety i radząc sobie z zależnościami, a następnie uruchamiając swój rodzaj zestawu testowego. I wydaje się, że wiesz, że jeśli nie zrobiłeś tych elementów po drodze, musisz nauczyć się zarówno automatyzacji, jak i tego, co robi z oprogramowaniem, które tworzysz. I widziałem, że jest to, no wiesz, ogromne wyzwanie dla wielu ludzi. Jestem jednak ciekaw, jak ta podróż i może, jak ludzie mogą to przezwyciężyć. Zrobimy pierwszą przerwę. Zaraz wrócimy. Czas na przerwę na reklamy. Czekać na dalsze informacje. Aby uzyskać więcej informacji, naciśnij to za chwilę. Witajcie ponownie, aby nacisnąć ten podcast społeczności WordPress na W EMR. Jesteśmy w trakcie rozmowy z Joshem Pollackiem o znaczeniu nowoczesnych narzędzi i testów automatycznych oraz rozwoju WordPressa. Josh, tuż przed przerwą w pewnym sensie wyjaśniałeś nowoczesne oprzyrządowanie. W pewnym sensie przeglądałeś listę kluczowych elementów tego. Podkreślałeś automatyzację przed naszym wyjazdem i podkreślałeś, że ludzie muszą uczyć się zarówno tego rodzaju zautomatyzowanego podejścia, jak i tego, co robią narzędzia. Czy to było dla ciebie wyzwanie? Jak zacząłeś przyjmować ten rodzaj rozwoju?
JP: No tak, całkowicie. Jestem frajerem dla ludzi. Nienawidzę tej części. Podoba mi się to. Ale kiedy próbuję napisać artykuł, właśnie wtedy, gdy mój mózg jest w przestrzeni, rozmawiałem z klientem i potrzebują, żeby to wyglądało tak i pojechało tutaj. Chcę lubić pisać kod PHP i JavaScript. Nie chcę pisać, wiesz, zautomatyzowanej konfiguracji testów ani konfigurować NPM, mimo że jestem w tym frajerem. Nie chcę sobie z tym radzić, kiedy jestem w przestrzeni mózgowej, wykonując taką samą pracę. Jestem w tym, więc to zawsze było dla mnie wyzwanie, ponieważ interesowałem się obydwoma, ale jak wszyscy, ciężko to zrobić na raz. Więc co maszyna wtyczek robi dla mnie, dla mnie i dla innych ludzi takich jak ja, to klikam kilka przycisków i ustawiam wszystkie części, które są ustawione tak, aby były zautomatyzowane. A kiedy mówię zautomatyzowane, mam na myśli takie rzeczy, jak mogę mieć jedno polecenie i readme, które konfiguruje lokalne środowisko programistyczne i pozwala mi zobaczyć je w przeglądarce i uruchomić testy, że mam akcje GitHub, które za każdym razem, gdy wprowadzana jest zmiana testy w różnych środowiskach z różnymi wersjami WordPressa, różnymi wersjami PHP. aby automatycznie sprawdzić, czy mój kod jest kompatybilny z wszystkimi tymi różnymi rzeczami. Bo to jest wyzwanie w WordPressie. A ja, jako programista, nie muszę się nad tym tak mocno zastanawiać, ponieważ konfiguracja wymaga kilku kliknięć, a potem zaglądasz do pliku readme, wycinając i wklejając to jedno polecenie, które robi wiele rzeczy. Ten człowiek robi wiele rzeczy, które pozwalają ci zobaczyć, dlaczego
DV: Jakby to było wiele dodatkowych kroków, wiele dodatkowych rzeczy, którymi można się zająć. Wspaniale jest użyć odłożonych ram, aby zbliżyć się do siebie. Ale jak, dlaczego lubić, dlaczego przechodzić przez te wszystkie problemy, aby zintegrować nowoczesne narzędzia do wyceny z procesem rozwoju.
JP: Więc w niektórych sprawach jest to w zasadzie wymóg. Na przykład, jeśli chcesz użyć React w WordPressie do czegoś takiego jak blok, tworząc fajną stronę administratora dla swojej wtyczki, mając interaktywny element frontonu, którego będziesz potrzebować użyć odpowiednich narzędzi WordPress, aby skompilować w sposób, który nie spowoduje problemów z kompatybilnością z innymi komponentami opartymi na reakcjach w witrynie WordPress. Tak więc, im bardziej i bardziej Staje się to skutecznym wymogiem, tak jak możesz chcieć, możesz mieć wtyczkę, która jest tam od jakiegoś czasu i musisz wprowadzić pewne zmiany, ale nie chcesz zepsuć rzeczy, które już istnieją. Najlepszym sposobem radzenia sobie z tym jest napisanie automatycznych testów, które opisują sposób, w jaki teraz działa, a jeśli wprowadzisz zmianę, która powoduje niepowodzenie jednego z tych testów, zatrzymaj tworzenie kopii zapasowej, wiesz, napraw ten błąd zamiast wysyłać go do swojego użytkowników. To kolejny przypadek, w którym podobnie jak Twoja potrzeba uszczęśliwienia klientów i posiadania stabilnego produktu staje się potrzebą.
DV: OK, więc to nie jest naprawdę interesujące, ponieważ ostatnio dużo o tym dyskutowano w WordPressie, co, jak Rob Stinson, jeden z moich współpracowników tutaj w WP Engine, wskazuje, że łatwe rzeczy w WordPress są coraz łatwiejsze , jak edytor bloków i trudne rzeczy stają się coraz trudniejsze, jak tworzenie wtyczki i jesteś rodzajem obserwacji, wiesz, rodzaj bardziej zaawansowanych podejść do programowania niż przeszłość w stosunku do nawet włączenia, które nie reagują tak, jak używanie go jako struktura. Więc to naprawdę brzmi prawdziwie. I wygląda na to, że korzyścią jest Twój czas, szczególnie w przypadku takich rzeczy, jak automatyczne testowanie, od konieczności ponownego kodowania dostarczonych rzeczy, które się zepsuły, i zgaduję również, że chcesz zachować pracę, jeśli jesteś lub Twoi klienci, jeśli wysyłasz , wiele przełomowych zmian i zgadywanie, że to także korzyść, tak jak korzyść pieniężna.
JP: Tak, jakbym był osobą na tej maszynie. Lub to jest rodzaj żartu związanego z podłączaniem maszyny. Jakbym natychmiast się nazywał. Nie jestem dobry w robieniu tego samego w kółko. Dokładnie w ten sam sposób. Dobrze. Dlatego używamy komputerów. Jakbyśmy byli po prostu jak, Hej, powiem ci jak z nim zrobić. Nazywamy ten kod. A potem po prostu uruchamiamy to w kółko, ufając komputerom, że zrobią to samo. W kółko, w ten sam sposób, więc dla mnie to jest to, że nie chcę się martwić, co jeśli wprowadzona przeze mnie zmiana się zawali, żebym mógł ręcznie przetestować to za każdym razem dokładnie w ten sam sposób i tak jak powiedziałem tym razem dobrze i to jest błąd ludzki lub po prostu mam program, który działa 48 I tym bardziej, że myślę, że ułatwiamy programistom wtyczek i motywów WordPress przeprowadzanie zautomatyzowanych testów bez typu „Och, bardzo bym chciał, ale nie mam czasu aby dowiedzieć się, jak to skonfigurować. Jestem tym bardziej, że te proste rzeczy, które są łatwe dla użytkownika końcowego, będą stabilne, prawda? Ponieważ nie chodzi tylko o to, aby interfejs użytkownika był łatwiejszy w użyciu lub łatwiejszy do nauczenia. Nie chcemy, aby ludzie tacy jak to narzekali na WordPressa. Uruchamiasz swoją witrynę, a następnie aktualizujesz swoje wtyczki. Dobrze. W ten sposób każdy ma problem na poziomie użytkownika. To nie jest coś, co możemy rozwiązać bezpośrednio dla użytkowników. To jest coś, co musimy rozwiązać, budując wtyczkę do WordPressa na podstawie sposobu, w jaki to testujemy
DV: więc jak terminy są zawsze takie jak Twoje oczekiwania. Na przykład, kiedy chcesz to jutro? Dobrze? Chyba nikt nigdy mi tego nie powiedział, och, potrzebujemy tego za sześć miesięcy. Nie ma problemu, prawda. Wszyscy chcą wszystkiego następnego dnia. I tak zespoły są pod presją. Jestem tylko ciekaw, jak myślisz o pisaniu testów lub zestawów testów, wiesz, w dawaniu ludziom coś w rodzaju czołgania się, chodzenia, czy są jakieś kluczowe obszary, czy lubisz zaczynać i lubisz, spróbuj pisać to, co chcesz czujesz się jak kompletny zestaw testów lub próbujesz wybrać go w pewnych częściach, gdy ludzie się uczą, jak ty, jak polecasz? zająć się tym jak przejść do pełnego zestawu testowego? Zdjąć kawałek, a potem nauczyć się w ten sposób? A jak myślisz o tej części?
JP: To świetne pytanie. Czasami przeprowadzam tego rodzaju konsultacje z ludźmi, gdzie lubię patrzeć na ich kod i nie tylko konfigurować testy automatyczne, ale lubię pracować z nimi nad szkoleniem ich w zakresie tego, co powinni testować. I często jest to jedna z rzeczy, które powstrzymują ludzi od tego, że czują się jakby winni, że nie mają żadnych testów, a następnie nie mogą mieć pełnego pokrycia testami. Dobrze. I myślę, że to dziwny sposób na podejście do tego, ponieważ to tak, jakby jeszcze nic nie zrobiłeś. Oczywiście, że rzecz nie jest rezultatem rzeczy. I nie napisałeś testu, wiesz, test, ale testy są przydatne, nawet jeśli nie obejmują wszystkiego. Myślę, że to jest ten, że ludzie obawiają się, że nie dostanę pełnego pokrycia testu. Jeśli napiszę tylko kilka testów. To tak, ale zbliżyłeś się do tego o krok. Zacząłeś to. Masz okazję dowiedzieć się, jak działa Tesco, więc na przykład mam wtyczkę, którą napisałem dla klienta, która dodaje skrót. Jakby to wszystko, co robi. I tak napisałem do i ma to wiesz, jeśli nie jesteś zalogowany, pokazuje ci komunikat o zalogowaniu. Napisałem więc dwa testy, oba po prostu wywołują funkcję, która renderuje krótki kod w make pewny, że nie zwróci błędu. To najbardziej szczegółowe testy na świecie. Ale kiedy po raz pierwszy je zatwierdziłem po pierwszym przejściu pisania wtyczki testowania i miałem całą masę błędów, tylko z uruchamiania tych testów, tak jak podczas generowania shortcode, wygenerowałem mnóstwo błędów PHP i udało mi się przepracować i sprawić, by te odeszły. A potem dało mi to pewność w przyszłości, że jeśli coś jest jedną z trzech lub czterech różnych części tego, co dzieje się w tym krótkim kodzie, pęka. Wiesz, to nie zda testu.
DV: Brzmi to tak, jakbyś myślał o tym w kategoriach kluczowych funkcji oprogramowania, które stworzyłeś, identyfikacji tych kluczowych funkcji, a następnie pisania testów. wokół tych, aby rozpocząć, aby wyizolować, gdzie w twoim oprogramowaniu mogą pojawiać się problemy. Czy to jest uczciwy sposób na ich przyniesienie?
JP: Powiedziałbym, ponieważ tak, ponieważ zaczyna się od dwóch testów, które mówią, że coś się popsuło, na przykład naprawdę dobre pokrycie testami. Chciałbyś mieć jeden test na każdą pojedynczą część. programu. I to jest tak, jakby jeden test się nie powiódł, a ty mówisz, w porządku, to mówi mi dokładnie, gdzie muszę się udać w mojej bazie kodu, aby rozwiązać. Może tam dotrzesz, może to sposób na opracowanie nowej wtyczki produktu. Ale jeśli masz jeden test, który robi, wiesz, twój shortcode, to upewniasz się, że twój blog może go dodać w edytorze postów. Upewnij się, że Twój formularz może zostać przesłany i nie zawiera żadnych błędów. Te obejmują tak dużo w przyszłości, kiedy te pękną, wiesz, zawodzą z konkretnego powodu. Drugi rodzaj rzeczy, które lubię, jest jak pierwsza faza. Druga faza jest następna, gdy test poprawności błędów kończy się niepowodzeniem z powodu tego błędu, a następnie może przejść, gdy go naprawisz, ponieważ teraz masz trochę bardziej szczegółowe testy i masz dowód, że naprawiłeś błąd i ty mieć ochronę przed powtórzeniem się w przyszłości.
DV: Podoba mi się, że w pewnym sensie używasz przyszłych toreb, ponieważ pojawiają się jako sposób na zwiększenie zasięgu testów i oczywiście obszarów, które najbardziej potrzebują właściwych rzeczy, które się psują. To sprytny sposób na wywołanie tego jako świetnej sugestii. Chcę się tutaj zagłębić i opowiedzieć o kulturze kodowania Dzikiego Zachodu i WordPressa. Zrobimy ostatnią przerwę i zaraz wrócimy. Czas na przerwę na reklamy. Bądź na bieżąco, aby uzyskać więcej naciśnięć za chwilę. Wszyscy witamy z powrotem, aby nacisnąć ten podcast społeczności WordPress na WMR. Mówimy o nowoczesnych narzędziach dla programistów WordPress z Joshem Pollockiem. Tuż przed przerwą rozmawialiśmy trochę o tym, jak Josh i tak myśli o podejściu do pisania zestawów testów, skupiając się najpierw na najważniejszych funkcjach. Naprawdę podobała mi się twoja sugestia Josh o używaniu pewnego rodzaju błędów w tej chwili, aby wzmocnić swój zestaw testowy. Myślałem, że to naprawdę sprytne. Wiesz, WordPress ma kulturę kodowania kowbojskiego kowboja, jeśli chcesz, aby Dziki Zachód dostał twojego penisa również w nazwie Czy widzisz, że kultura automatycznego testowania zaczyna się zakorzeniać, czy to pojęcie jak cytat, trudne rzeczy stają się trudniejsze, jak tworzenie nowoczesnych narzędzi . Powiedziałeś również o wymaganiu, ale także o tym, że testowanie automatyczne. Czy czujesz, że to zakorzenia się w WordPressie, czy nadal czujesz, że to tak, jak wiesz, pięciominutowa instalacja i 10-minutowa strona internetowa?
JP: Cóż, to zależy od projektu, prawda? Jakby coś było nie tak, jak świetnie, gdy można podłączyć maszynę.com Tak, jak jedna strona internetowa z WordPressem naprawdę się buduję. Nie mam żadnej z tych kontroli pod kontrolą wersji. Nie ma klientów, którzy mogliby mieć trochę takiego niestandardowego kodu. Lubię modyfikować w Hello Dolly. Dobrze. To jak z półki. Ale myśl, jak kiedyś pracowałem w agencji. Wszystkie wdrożenia zostały zautomatyzowane, prawda? Wszystko było sprawdzane w kontroli wersji za pomocą przepływu pracy pull request. A potem, gdy scalisz w jedną gałąź, automatycznie wdrożysz witrynę. To poszło łatwiej, jest o wiele więcej narzędzi do tego. Jest o wiele więcej hostów, które, wiesz, obsługują to i mają udokumentowane sposoby na zrobienie tego i uzyskanie automatycznych wdrożeń na przykład, jeśli budujesz całą witrynę. Myślę, że to świetny pierwszy krok, ponieważ jest to okazja do standaryzacji tej części. A potem w tym potoku zacznij dodawać do tego testy. Myślę, że coraz więcej ludzi to robi. I wiesz, używam klienta FTP do przeciągania, wiesz, plików na serwer wcześniej tego ranka, ponieważ czasami jest to jedyny sposób, aby to zrobić. Um, i myślę, tak, myślę, że jest coraz lepiej, ale wiesz, to nie jest łatwe dla ludzi. Jakby nie było, myślę, bo jak kompozytor nie jest rodzimym konceptem ani korpusem prasowym, który utrudnia lub NPM. Myślę, że w tej przestrzeni jest o wiele więcej do zrobienia. I jak naprawdę jestem bardzo zainteresowany w ten sposób. Gdybym miał więcej czasu, uznałbym, że problem opanowania nie jest. Współpracuje z WordPressem. Lead nie jest świetnym narzędziem. Działa dla całego projektu, ale tak jak nie może rekurencyjnie instalować zależności tego rodzaju problemów
DV: Ale co z twoim testem? Wasze testy, z których korzystacie tutaj jak informatycy, ponieważ czuję, że to duży bloker dla wielu ludzi próbujących zaadoptować nowoczesne programowanie, było jak, wiecie, zestawy testowe, których mogę użyć? Jakich narzędzi testowych mogę używać? Jestem po prostu ciekawy, czy masz jakieś zalecenia dla osób słuchających automatycznych testów i narzędzi lub zestawów testowych lub frameworków dla WordPressa, które mogliby rozważyć
JP: cóż, więc dla programistów WordPressa robisz jak wtyczki. Nie używam po prostu jednostki PHP, która jest standardem w WordPressie do testowania PHP. Są też narzędzia, które zostały opracowane przez Yoast, które są open source i w ramach tego ułatwiają testowanie z jednostką PHP, a wszystkie są automatycznie konfigurowane na twoim komputerze. A potem dla JavaScriptu, który jest jak React. To jest część skryptów WP. To są rzeczy, których używam, ale także dla osób, które mogą tworzyć strony internetowe, możesz przeprowadzać automatyczne testy za pomocą narzędzi takich jak go Student Spectre lub Checkley, gdzie możesz zaprogramować test w taki sposób, że masz rozszerzenie przeglądarki. Następnie wchodzisz do przeglądarki, klikasz rekord i robisz takie rzeczy, jak logowanie się do swojej witryny i dodawanie posta lub dodawanie bloku lub tego typu rzeczy, a następnie mogą uruchamiać się na Twojej stronie, co wiesz, raz dziennie lub raz w tygodniu. I to jest sposób na to, aby nie wykonywać zautomatyzowanych testów kodu, wiesz, ludzie, którzy są właścicielami stron internetowych i ty wiesz, to naprawdę duże, gdy twój klient wysyła ci wiadomość i mówi: Hej, ta strona jest uszkodzona. To nie jest świetny sposób na rozpoczęcie interakcji z klientem. O wiele lepiej powiedzieć hej, nasz automatyczny test zauważył, że ostatnia aktualizacja zepsuła sekcję i już to naprawiliśmy.
DV: Myślę o wszystkich odcinkach współczesnego przepływu pracy, które zrobiłem przez te lata. Nie wydaje mi się, żeby choć jedna osoba była kiedykolwiek wprowadzona w tę koncepcję. To naprawdę sprytne. To było niesamowite. Josh, dziękuję bardzo za przyłączenie się do nas dzisiaj.
JP: Nie ma za co. Dzięki za zaproszenie.
DV: Jeśli chcesz dowiedzieć się więcej o tym, co robi Josh, być może poszerzyć swoją własną przygodę z nowoczesnymi programistami WordPress, odwiedź pluginmachine.com Dziękujemy wszystkim za wysłuchanie tego podcastu społeczności WordPress i WMR. To był twój gospodarz David Vogelpohl. Wspieram społeczność WordPressa poprzez moją rolę w WP Engine. I uwielbiam przedstawiać wam to, co najlepsze ze społeczności, co tydzień w Press This.