Press This: The Importance of Modern Tooling & Automated Testing in WordPress Development mit Josh Pollock

Veröffentlicht: 2022-05-12

Willkommen bei Press This, dem WordPress-Community-Podcast von WMR. Hier setzt sich Gastgeber David Vogelpohl mit Gästen aus der ganzen Community zusammen, um über die größten Probleme zu sprechen, mit denen WordPress-Entwickler konfrontiert sind. Das Folgende ist eine Transkription der Originalaufnahme.

Unterstützt von RedCircle

David Vogelpohl: Hallo zusammen und willkommen bei Press This, den Podcasts der WordPress-Community auf WMR. Dies ist Ihr Gastgeber, David Vogelpohl, ich unterstütze die WordPress-Community durch meine Rolle bei WP Engine, und ich liebe es, Ihnen das Beste aus der Community näherzubringen. Hören Sie jede Woche auf Presse dies als Erinnerung, Sie finden mich auf Twitter @wpdavidv , oder Sie können dies bei iTunes, iHeartRadio, Spotify abonnieren oder die neuesten Folgen bei wmr.fm herunterladen. In dieser Folge werden wir natürlich über die Bedeutung moderner Tools und automatisierter Tests und der WordPress-Entwicklung im Besonderen sprechen und uns an diesem Gespräch beteiligen. Ich würde mich freuen, diesen Mr. Josh Pollock zu drücken. Josch, willkommen.

Josh Pollock: Danke. Danke für die Einladung. Wie geht es Ihnen?

DV: Gut, gut. Ich bin sehr aufgeregt. dich in den Shows zu haben. Wir haben schon vor der Aufnahme darüber gesprochen, dass du der, glaube ich, berühmteste WordPress-Pollock aller Pollocks bist, richtig?

JP: Im Vergleich zu Jackson Pollock weniger berühmt, aber ja, das war es nicht

DV: Bei weitem nicht so bekannt wie WordPress. Also denke ich, als hättest du Jackson da.

JP: richtig? Ja. Ich bin aber ein Fan seiner Arbeit.

DV: Ah, das ist gut zu lernen. Für diejenigen, die zuhören, und Josh wird heute darüber sprechen. Josh kommt aus verschiedenen Bereichen zu uns, konzentriert sich aber besonders auf Plug-in-Maschinen. Wir werden ein wenig darüber sprechen, aber auch über seine Gedanken darüber, warum moderne Entwicklungstools und automatisierte Tests für die WordPress-Entwicklung so wichtig sind. Wenn Sie also ein Cowboy- oder Cowgirl-Programmierer sind, wird Josh ein wenig darüber sprechen, warum ein anderer Weg besser sein könnte. Einige seiner Lieblingstools dafür und wie man automatisierte Tests mit eigenen WordPress-Entwicklungsprojekten angeht. Bevor wir darauf eingehen, möchte ich die Leute daran erinnern, dass ich weiß, dass Sie dies wahrscheinlich in früheren Episoden gehört haben. Am 25. April 2022 wird WP Engine unsere virtuelle Dekodierungskonferenz abhalten. Schaut gerne vorbei. Erfahren Sie mehr über die WordPress-Entwicklung zu einer Vielzahl von Themen. Sie können Veranstaltungen auf WP engine.com besuchen Schrägstrich dekodieren Bindestrich 2022 In Ordnung, Josh, ich stelle Ihnen die erste Frage, die ich allen meinen Gästen gestellt habe. Könntest du mir kurz deine WordPress-Entstehungsgeschichte erzählen? Wann haben Sie WordPress zum ersten Mal verwendet?

JP: Ja, ich benutze WordPress wahrscheinlich zum ersten Mal. Nehmen wir an, 2011 2012, um einen Blog zu schreiben, wie auf wordpress.com, dann habe ich gerne gegoogelt, wie man etwas macht, und sie waren wie etwas in Funktionen einfügen. php. Also musste ich es mögen, zu selbst gehostetem WordPress zu wechseln, und ich glaube nicht, dass ich jemals wirklich viel an diesem Blog gearbeitet habe. Ich wurde wirklich durch den Code-Teil abgelenkt. Und das hat mich dazu gebracht, wie die WordPress-Community und freiwillig mit dem Theme-Review-Team zu arbeiten, und dann werde ich bei Pods arbeiten, einem Plugin, das benutzerdefinierte Felder und benutzerdefinierte Beitragstypen mag und eine Benutzeroberfläche dafür hat, und ich habe eine Stelle als Hilfskraft dort. Scott Kingsley Card, der leitende Entwickler dort, und alle anderen haben mich wirklich unterstützt und mir geholfen, etwas über die Entwicklung zu lernen, und von da an bin ich wirklich in die Plug-in-Entwicklung eingestiegen. Das ist cool.

DV: Wann wurden Sie zum ersten Mal von dem Code abgelenkt, von dem Sie sagten, dass er 2011 oder 12 war, als Sie versuchten, einen Blog zu starten? War es kurz danach oder?

JP: Ja, ja, ich war also so wie WordPress 2.7, ich glaube, das war die erste Version, an der ich gearbeitet habe. Ich meine, ich denke, die erste Version, wie ich sie verwendet habe, und ich denke, die erste Version, zu der ich beigetragen habe, war wie drei Punkte.

DV: Also ja, 2011 wäre das direkt nach dem benutzerdefinierten Beitragstyp gewesen. Das wäre also eine aufregende Zeit für WordPress gewesen. Ich denke, von 237 habe ich einige seltsame Episoden gemacht. Du bist die erste Entstehungsgeschichte von wordpress.com. Ich denke, Sie haben vielleicht die Unterscheidung zwischen dem und all den Leuten, die ich in diesen Jahren interviewt habe, aber es ist ziemlich cool, dass Sie damit angefangen haben. In der Blogosphäre. Und dann schnell auf die Entwicklungsseite übergegangen, da es wirklich interessant war. Ich habe früher in diesem Jahr mit Plugin-Maschine erwähnt, könnten Sie uns sagen, was Plugin-Maschine tut und was Sie dort tun?

JP: Ja, das ist also ein neues Produkt, das ich entwickle, weißt du, ich meine, es ist mein Solo. Sache, die ich baue, als wäre ich jetzt ein freiberuflicher Entwickler. Zwischen den Teilen der Geschichte habe ich einige Leute getroffen, die eine Zeit lang an einem Plug-In namens Cutter Forms Through Pods in einer Firma gearbeitet haben, die das umgibt. Und dann habe ich ein paar Jobs im WordPress-Bereich gemacht und bin jetzt ein freiberuflicher Entwickler. Und oft erstelle ich WordPress-Plugins für WordPress-Sites. Als wäre ich nicht jemand, zu dem Sie gehen und wie Sie sein würden, ich muss eine Website für mein Geschäft erstellen. Als würde ich die coole Funktionalität dafür bauen. Jemand anderes wird uns ein Thema oder was auch immer bauen, und für meine eigenen Projekte habe ich mich immer wieder aufgehängt, was wäre, wie starte ich dieses Plugin? Zum Beispiel möchte ich Blöcke haben und sicherstellen, dass ich WordPress-Skripte verwende, wie das neue Tool zum Kompilieren von JavaScript-Code, einschließlich React-Code, und die Funktionsweise ist mit WordPress kompatibel. Sofort. Es ist der WordPress-Standard. Dort war er so, als würde er das letzte Projekt, an dem ich immer und immer wieder gearbeitet habe, aufgeben.

DV: Das ist der Anfang jeder großartigen Software, nicht wahr?

JP: Ja. Das führte also zu dem, was ich jetzt Plugging-Maschine nenne, ein Werkzeug, das ein paar Dinge tut. Erstens hilft es, Plugins zu starten, als würde es den gesamten Code erstellen, den Sie mit allen korrekten Namenskonventionen in Abhängigkeiten benötigen, um Dinge wie die Verwendung des Composer für PHP-Autoloader in Abhängigkeiten oder die Verwendung der WordPress-Skripte für Ihre Blöcke zu tun. All diese verschiedenen Arten von Dingen. Und das hat mich dazu gebracht, dass ich schon immer irgendwie besessen war von den beweglichen Teilen der Fehler in der Entwicklung, dem automatisierten Testen, dem Erstellen der richtigen Zip-Datei, die alle richtigen Dateien enthält, die Sie wollen, aber nicht die, die Sie brauchen nicht wollen. Wie Ihre Tests, die Sie installieren möchten. Also protokolliere ich Maschinen, diese Art von komplettem Tool zum Starten von Plugins, Hinzufügen von Funktionen zu Plugins, ich muss einen Block und die Datenmenüseite hinzufügen und dann wie die endgültige Paketversion erstellen, die in die WordPress-Site aufgenommen werden kann.

DV: Und Commit-Entwicklungs-Framework für Plugins. Ich schätze, wenn ich muss, benutze nur ein paar Worte, um es zu beschreiben. Ist das fair?

JP: Das ist großartig. Ich werde das aufschreiben. Nein, nein, das ist der Teil, warum ich es liebe, Podcasts zu machen, als ob du bist, du hast eine großartige Möglichkeit, es zu vereinfachen, als wäre es ein Entwicklungsframework für WordPress-Plugins, als wäre es ein gehosteter Dienst und eine CLI die Sie verwenden, um eine Benutzeroberfläche zu haben, auf der Sie klicken können, wie ich benutzerdefinierte Beitragstypen verwenden möchte, und ich möchte Blöcke verwenden, und wenn Sie dann in Ihrem Plugin sind, können Sie schnell Befehle wie Plug-in-Maschine, Plugins, zip Grants, eine Zip-Datei für Ihre Tasche.

DV: Solche Sachen. Also ich liebe es, wenn Software natürlich irgendwie aus Notwendigkeit und auf gewohnte Weise entsteht, und es ist irgendwie interessant, die Entstehungsgeschichte der Plugin-Maschine zu hören, zu schätzen, dass Sie immer noch irgendwie daran festhalten, aber irgendwie herauskommen und Sie ' Eine Art hausgemachter Ansatz, und so wie Ihre Reise mit wordpress.com begann, richtig, als würde buchstäblich keine Code-Website schnell in eine fortgeschrittenere Entwicklung geraten. Also helfen Sie mir, unser Publikum zu verstehen, sogar zu verstehen, wenn Sie darüber sprechen, zitieren Sie moderne Tools mit der WordPress-Entwicklung, was bedeutet das für Sie und warum ist das wichtig?

JP: Ja. Also nur für den Kontext, wie ich genehmigt werde, wen ich anspreche, sagt, ich bin, wissen Sie, ein WordPress-Plugin-Entwickler, Sie werden Webanwendungsentwickler, ich spreche über das Erstellen von WordPress-Plugins, benutzerdefinierten Plugins für Ihre Website. Das kann ein einzigartiges Plug-in sein, das etwas tut, das es nicht gibt, wissen Sie, es erweitert WooCommerce auf einzigartige und interessante Weise für Ihr Unternehmen, oder Plug-ins, die Leute entwickeln, um Open Source zu verbreiten oder zu verkaufen. Und wenn Sie das tun, wissen Sie nicht, wie als ich anfing, Plugins zu bauen, wie Hallo, Zweifel, es ist nur eine Datei. Dafür braucht man eigentlich nichts Besonderes. Aber wenn sie an Komplexität zunehmen, beginnen Sie, automatisierte Abhängigkeiten zu haben, wenn Sie den WordPress-Skript-Packager verwenden möchten, möchten Sie das WordPress-Komponentenpaket verwenden, das Sie verwenden werden, um dieselben Eingaben zu verwenden und die Art von Formularsteuerelementen auszuwählen, die Gutenberg kennt. Wenn Sie das tun, brauchen Sie etwas, das es automatisch installieren kann, so etwas wie NPM oder Garn, und dann brauchen Sie ein Tool, das den Build-Prozess automatisch ausführen kann, um browsersicheres JavaScript und Webskripte zu erstellen. Und dann beginnen Sie mit dem, was wir automatisiertes Testen nennen, wo wir zusätzlichen Code schreiben, der unseren Code ausführt, um sicherzustellen, dass er richtig läuft. Und da gibt es eine Menge Komplexität, und ich denke, das macht es schwierig, weil man diese Tools lernt und gleichzeitig lernt, wie man sie benutzt, und man lernt zwei Dinge gleichzeitig

DV: Es war interessant zu hören, wie Sie es beschreiben, verwenden Sie das Wort automatisieren für jeden einzelnen Punkt, während Sie über modern gesprochen haben, um es zu mögen, wissen Sie, Pakete zu installieren und mit Abhängigkeiten umzugehen und dann Ihre Art von Testsuite auszuführen. Und es scheint, als wüssten Sie, dass Sie, wenn Sie diese Teile noch nicht gemacht haben, sowohl die Automatisierung lernen müssen als auch, was das Ding mit der Software macht, die Sie erstellen. Und ich konnte sehen, dass dies eine große Herausforderung für viele Leute war. Ich bin jedoch neugierig, etwa auf diese Reise, und vielleicht, wie die Leute darüber hinwegkommen können. Wir machen unsere erste Pause. Wir sind gleich zurück. Zeit für eine Werbepause. Bleiben Sie dran. Um mehr zu erfahren, drücken Sie dies gleich. Willkommen zurück, um diesen WordPress-Community-Podcast auf W EMR zu veröffentlichen. Wir sprechen gerade mit Josh Pollack über die Bedeutung moderner Tools und automatisierter Tests und WordPress-Entwicklung. Josh, kurz vor der Pause hast du moderne Werkzeuge erklärt. Sie sind eine Art Liste einer Liste von Schlüsselkomponenten davon durchgegangen. Sie haben die Automatisierung immer wieder betont, bevor wir loslegten, und darauf hingewiesen, dass die Leute beide Arten des automatisierten Ansatzes lernen müssen, aber auch, was die Tools tun. War das eine Herausforderung für Sie? Wie haben Sie begonnen, diese Art der Entwicklung zu übernehmen?

JP: Nun, ja, total. In Ich bin ein Nerd für Leute. Ich hasse diesen Teil davon. Ich genieße es. Aber wenn ich versuche, einen Spielfilm zu schreiben, habe ich gerade in dem Moment, in dem mein Gehirn im Raum ist, mit einem Kunden gesprochen, und sie brauchen, dass dieses Ding so aussieht und hierher kommt. Ich möchte gerne PHP- und JavaScript-Code schreiben. Ich möchte kein, wissen Sie, automatisiertes Test-Setup schreiben oder NPM konfigurieren, obwohl ich ein Nerd für dieses Zeug bin. Ich möchte mich nicht damit befassen, wenn ich im Kopf bin und so tue, wie ich die eigentliche Arbeit mache. Ich bin dabei, das war immer die Herausforderung für mich, weil ich mich für beides interessierte, aber es ist wie bei allen, es ist schwer, es gleichzeitig zu tun. Was die Plugin-Maschine also für mich und mich und für andere Leute wie mich macht, ist, dass ich auf ein paar Schaltflächen klicke und alle darin enthaltenen Teile für die Automatisierung eingerichtet bekomme. Und wenn ich automatisiert sage, meine ich Dinge wie, dass ich einen Befehl und die Readme-Datei haben kann, die die lokale Entwicklungsumgebung einrichtet und es mir ermöglicht, sie im Browser zu sehen und Tests durchzuführen, dass ich GitHub-Aktionen habe, die jedes Mal ausgeführt werden, wenn eine Änderung vorgenommen wird die Tests in verschiedenen Umgebungen mit verschiedenen WordPress-Versionen, verschiedenen PHP-Versionen. um automatisch zu prüfen, ob mein Code mit all diesen verschiedenen Dingen kompatibel ist. Denn das ist eine Herausforderung in WordPress. Und ich als Entwickler muss nicht so lange darüber nachdenken, weil es ein paar Klicks sind, um es einzurichten, und dann schaust du in die Readme-Datei, schneidest diesen einen Befehl aus und fügst ihn ein, der eine Menge Dinge macht. Dieser Mann macht viele Dinge, die es einem erlauben, das Warum zu sehen

DV: Es sind zum Beispiel viele zusätzliche Schritte, viele zusätzliche Dinge, um sich zurechtzufinden. Es ist großartig, eine Art von Regalrahmen zu verwenden, um dich näher zu bringen. Aber wie, warum, warum all diese Mühe auf sich nehmen, um moderne Tools in Ihren Entwicklungsprozess zu integrieren.

JP: Also für manche Dinge ist es im Grunde eine Voraussetzung. Wenn Sie beispielsweise React in WordPress für etwas wie Blockieren verwenden möchten, wie eine coole Admin-Seite für Ihr Plugin erstellen möchten und ein interaktives Front-End-Element haben, müssen Sie die richtigen WordPress-Tools verwenden, um dies so zu kompilieren verursacht keine Kompatibilitätsprobleme mit anderen reaktionsbasierten Komponenten auf der WordPress-Site. Je mehr Sie also werden, desto mehr wird es zu einer Anforderung, genau wie Sie es vielleicht möchten, Sie haben vielleicht ein Plugin, das es schon eine Weile gibt, und Sie müssen einige Änderungen vornehmen, aber Sie wollen es nicht Zerstöre die Dinge, die bereits existierende Merkmale aufweisen. Der beste Weg, damit umzugehen, besteht darin, automatisierte Tests zu schreiben, die beschreiben, wie es jetzt funktioniert, und wenn Sie eine Änderung vornehmen, die dazu führt, dass einer dieser Tests fehlschlägt, stoppen Sie wieder, Sie wissen schon, beheben Sie diesen Fehler, anstatt ihn an Sie zu senden Benutzer. Das ist ein weiterer Fall, in dem es Ihnen ähnlich geht, Ihr Bedürfnis, Ihre Kunden glücklich zu machen und ein stabiles Produkt zu haben, wird zum Bedürfnis.

DV: Okay, das ist nicht wirklich interessant, weil es in letzter Zeit viele Diskussionen darüber in WordPress gegeben hat, was Rob Stinson, einer meiner Kollegen hier bei WP Engine, darauf hinweist, dass die einfachen Dinge in WordPress immer einfacher werden , wie der Blockeditor und die schwierigen Dinge werden immer schwieriger, wie das Erstellen eines Plugins und Sie sind Art von Beobachtungen dort, Sie wissen schon, fortgeschrittenere Entwicklungsansätze als in der Vergangenheit, verglichen mit der Integration von React wenig in wie die Verwendung als Rahmen. Das klingt also wirklich wahr. Und es hört sich so an, als ob der Vorteil darin besteht, dass Sie von Anfang an Zeit haben, insbesondere bei Dingen wie automatisierten Tests, da Sie Sachen, die Sie versendet haben, neu codieren müssen, die kaputt gegangen sind, und ich schätze, auch, wenn Sie Ihren Job behalten, wenn Sie es sind, oder Ihre Kunden, wenn Sie versenden , viele Breaking Changes und das Erraten, das ist auch ein Vorteil, wie es einen monetären Vorteil gibt.

JP: Ja, als wäre ich eine Person auf dieser Maschine. Oder das ist eine Art Witz hinter der Plug-in-Maschine. Als wäre ich sofort der Name. Ich bin nicht gut darin, immer wieder dasselbe zu tun. Auf die gleiche Weise. Recht. Deshalb verwenden wir Computer. Als würden wir nur sagen, Hey, ich werde dir sagen, wie man mit ihm umgeht. Wir nennen das Code. Und dann lassen wir es einfach immer und immer wieder laufen und vertrauen darauf, dass Computer dasselbe tun. Immer und immer wieder auf die gleiche Art und Weise. Das bedeutet für mich, dass ich nicht die Angst haben möchte, was passiert, wenn die von mir vorgenommene Änderung einbricht, damit ich sie jedes Mal auf die gleiche Weise manuell testen kann, und das, wie ich damals richtig gesagt habe und das ist menschliches Versagen oder ich habe nur ein Programm, das 48 läuft. Und je mehr ich denke, wir machen es WordPress-Plug-in- und Theme-Entwicklern einfacher, automatisierte Tests durchzuführen, ohne wie: Oh, ich würde gerne, aber ich habe keine Zeit um herauszufinden, wie man es einrichtet. Ich bin eher der Meinung, dass diese einfachen Dinge, die für den Endbenutzer einfach sind, stabil sein werden, oder? Weil wir nicht nur wollen, dass die Benutzeroberfläche einfacher zu verwenden oder zu erlernen ist. Wir wollen solche Leute nicht, lautet die Beschwerde über WordPress. Sie bringen Ihre Website in Gang und aktualisieren dann Ihre Plugins. Recht. Das ist die Sache, mit der jeder auf Benutzerebene ein Problem hat. Es ist nicht etwas, das wir für Benutzer direkt lösen können. Es ist etwas, das wir in der Art und Weise lösen müssen, wie wir das WordPress-Plug-In so bauen, wie wir es testen

DV: So wie Fristen sind immer deine Erwartungen. Wie wann willst du das morgen? Recht? Ich glaube nicht, dass irgendjemand das jemals nicht zu mir gesagt hat, oh, wir brauchen es in sechs Monaten. Kein Problem, stimmt. Jeder will am nächsten Tag alles. Und so stehen die Teams unter diesem Druck. Ich bin nur neugierig, wie Sie über das Schreiben von Tests oder Testsuiten denken, wissen Sie, wie Sie Leuten eine Art Crawling geben, Walk Run, gibt es einige Schlüsselbereiche oder möchten Sie anfangen und mögen, versuchen Sie zu schreiben, was Sie tun Fühlen Sie sich als vollständige Testsuite oder versuchen Sie, es in bestimmten Teilen abzuheben, da die Leute gerne lernen, wie Sie es empfehlen? Gehen Sie es an, als würden Sie die vollständige Testsuite nutzen? Ein Stück abziehen und dann so lernen? Oder wie denkst du über diesen Teil?

JP: Das ist eine großartige Frage. Ich mache diese Art der Beratung manchmal mit Leuten, bei denen ich gerne ihren Code anschaue und nicht nur automatisierte Tests einrichte, sondern mit ihnen arbeite, um sie darin zu coachen, was sie testen sollten. Und oft ist dies eines der Dinge, die Menschen zurückhalten, weil sie sich irgendwie schuldig fühlen, dass sie keine Tests haben und dann keine vollständige Testabdeckung haben können. Recht. Und ich denke, das ist eine seltsame Herangehensweise, weil es so ist, als hättest du noch gar nichts getan. Natürlich hat man das Ding nicht als Ergebnis des Dings. Und Sie haben den Test nicht geschrieben, wissen Sie, Test, aber die Tests sind nützlich, auch wenn sie nicht alles abdecken. Ich denke, das ist wirklich die Angst, die die Leute haben, dass ich keine vollständige Testabdeckung bekomme. Wenn ich nur ein paar Tests schreibe. Es ist wie, ja, aber du bist dem einen Schritt näher gekommen. Du hast damit angefangen. Sie hatten die Möglichkeit, Tesco zu lernen, also habe ich zum Beispiel ein Plugin, das ich für einen Kunden geschrieben habe, das eine Verknüpfung hinzufügt. Als wäre das alles. Und so habe ich an geschrieben und es hat das, wissen Sie, wenn Sie nicht eingeloggt sind, zeigt es Ihnen eine Meldung über das Einloggen. Also habe ich zwei Tests geschrieben, beide rufen einfach die Funktion auf, die den Shortcode in make rendert sicher, dass es keinen Fehler wirft. Das sind die detailliertesten Tests der Welt. Aber als ich sie danach zum ersten Mal festgeschrieben habe, war mein erster Testdurchlauf beim Schreiben des Plugins und ich hatte eine ganze Reihe von Fehlern, nur beim Ausführen dieser Tests, wie gerade beim Generieren des Shortcodes, hatte ich eine Menge PHP-Fehler generiert und ich war in der Lage, durchzuarbeiten und diese zum Verschwinden zu bringen. Und das gab mir das Vertrauen in die Zukunft, dass, wenn so etwas einer der drei oder vier verschiedenen Teile dessen, was in diesen Shortcode geht, kaputt geht. Weißt du, das wird den Test nicht bestehen.

DV: Das hört sich so an, als würden Sie darüber nachdenken, wie Sie die Schlüsselfunktionalität der Software, die Sie erstellt haben, identifizieren, diese Schlüsselfunktionen identifizieren und dann eine Art Tests schreiben. um diese zu starten, um einzugrenzen, wo in Ihrer Software Probleme auftreten könnten. Ist das ein fairer Weg, sie zu bringen?

JP: Ich würde sagen, weil, ja, weil das mit zwei Tests beginnt, die sagen, dass etwas kaputt gegangen ist, wie eine wirklich gute Testabdeckung. Sie hätten gerne einen Test für jedes einzelne Teil. des Programms. Und so ist es, als ob ein Test fehlschlägt und Sie sagen: Okay, das sagt mir genau, wohin ich in meiner Codebasis gehen muss, um es zu lösen. Vielleicht kommst du dahin, vielleicht ist das eine Möglichkeit, ein neues Produkt-Plugin zu entwickeln. Aber wenn Sie einen Test haben, der das tut, wissen Sie, Ihr Shortcode stellt sicher, dass Ihr Blog ihn im Post-Editor hinzufügen kann. Stellen Sie sicher, dass Ihr Formular abgeschickt werden kann und keine Fehler macht. Diese decken so viel in der Zukunft ab, wenn diese kaputt gehen, sie versagen aus einem bestimmten Grund. Dann die zweite Art von Dingen, die ich mag, also wie die erste Phase. Die zweite Phase ist das nächste Mal, wenn es einen richtigen Fehlertest gibt, der aufgrund dieses Fehlers fehlschlägt, dann kann er bestehen, sobald Sie den Fehler behoben haben, weil Sie jetzt etwas detaillierter in Ihren Tests sind und Beweise dafür haben, dass Sie den Fehler beheben und Sie haben Sie Schutz davor, dass dies in Zukunft erneut passiert.

DV: Ich finde es gut, dass Sie Zukunftstaschen verwenden, wenn sie auftauchen, um mehr Testabdeckung hinzuzufügen, und natürlich die Bereiche, die am dringendsten benötigt werden, die Dinge, die kaputt gehen. Es ist eine clevere Art, dies als großartige Suggestion zu erzeugen. Ich möchte hier etwas tiefer graben und über diese Kultur der Wild-West-Codierung und WordPress sprechen. Wir machen unsere letzte Pause und sind gleich wieder da. Zeit für eine Werbepause. Bleiben Sie dran, um dies in einem Moment weiter zu drücken. Jeder ist willkommen, diesen WordPress-Community-Podcast auf WMR zu veröffentlichen. Wir sprechen mit Josh Pollock über moderne Tools für WordPress-Entwickler. Kurz vor der Pause sprachen wir ein wenig darüber, wie Josh sowieso davon ausgeht, dass Sie Ihre Testsuiten so schreiben, dass Sie sich zuerst auf die kritischsten Funktionen konzentrieren. Mir gefiel dein Vorschlag, Josh, im Moment eine Art von Fehlern zu verwenden, um deine Testsuite aufzupeppen. Das fand ich wirklich clever. Wissen Sie, WordPress hat eine Kultur der Cowboy-Cowgirl-Codierung, wenn Sie so wollen, Wild West, der Ihren Schwanz bekommt, auch genannt Sehen Sie eine Kultur des automatisierten Testens, die beginnt, Wurzeln zu schlagen, ist diese Vorstellung, dass harte Dinge immer schwieriger werden, wie z. B. die Herstellung moderner Werkzeuge . Sie sagten auch eine Anforderung, aber auch diesen Begriff des automatisierten Testens. Haben Sie das Gefühl, dass das in WordPress Wurzeln schlägt, oder haben Sie immer noch das Gefühl, dass es so ist, wie Sie es kennen, die fünfminütige Installation und die zehnminütige Website?

JP: Nun, das hängt vom Projekt ab, richtig? Als ob etwas nicht stimmt, als wäre es großartig, wenn man so etwas tun könnte wie plug in machine.com. Wie die eine Website mit WordPress, die ich gerade selbst baue. Ich habe nichts davon unter Versionskontrolle. Es gibt keine Kunden, die so ein bisschen benutzerdefinierten Code haben. Ich mag es in Hello Dolly geändert. Recht. Es ist wie Stoff von der Stange. Aber ein Denken, wie ich früher in einer Agentur gearbeitet habe. Alle Bereitstellungen wurden automatisiert, richtig? Alles wurde mithilfe eines Pull-Request-Workflows in die Versionskontrolle eingecheckt. Und wenn Sie dann zu einem Zweig zusammenführen, wird die Site automatisch bereitgestellt. Das ist einfacher geworden, dafür gibt es viel mehr Tools. Es gibt viel mehr Hosts, die das unterstützen und dokumentierte Möglichkeiten haben, dies zu tun und automatisierte Bereitstellungen zu erhalten, wenn Sie eine ganze Site erstellen. Ich denke, das ist ein großartiger erster Schritt, denn das ist eine Gelegenheit, diesen Teil zu standardisieren. Und dann, wissen Sie, in dieser Pipeline, fangen Sie an, Tests hinzuzufügen. Ich glaube, das machen immer mehr Leute. Und, wissen Sie, ich benutze einen FTP-Client, um Dateien heute früh auf einen Server zu ziehen, weil das manchmal die einzige Möglichkeit ist. Ähm, und ich denke, ja, ich denke, es wird besser, aber, weißt du, es ist nicht einfach genug für die Leute. Like ist es nicht, denke ich, weil Like Composer kein einheimisches Konzept oder Pressekorps ist, das es schwieriger macht, oder NPM. Ich denke, dass in diesem Bereich noch viel zu tun ist. Und wie ich bin, bin ich wirklich sehr daran interessiert. Wenn ich mehr Zeit hätte, würde ich das Problem der Gelassenheit nicht berücksichtigen. Funktioniert mit WordPress. Blei ist kein großartiges Werkzeug. Es funktioniert für das gesamte Projekt, aber wie es Abhängigkeiten nicht rekursiv installieren kann, diese Art von Problemen

DV: Aber was ist mit deinem Test? Ihre Tests verwenden Sie wie die IT-Leute hier, weil ich das Gefühl habe, dass das für viele Leute, die versuchen, moderne Entwicklung zu übernehmen, ein großes Hindernis ist, wie, wissen Sie, welche Testsuiten kann ich verwenden? Welche Testtools kann ich verwenden? Ich bin nur neugierig, ob Sie irgendwelche Empfehlungen für Leute haben, die sich mit automatisierten Tests und Tools oder Testsuiten oder Frameworks für WordPress befassen, die sie in Betracht ziehen könnten

JP: Also, für WordPress-Entwickler machst du es wie Plugins. Du brauchst nicht ich verwende nur die PHP-Einheit, die der Standard für das WordPress-Plug-in für PHP-Tests ist. Und dann gibt es einige von Yoast entwickelte Tools, die Open Source sind und als Teil davon das Testen mit der PHP-Einheit erleichtern und die alle automatisch auf Ihrem Computer eingerichtet werden. Und dann für JavaScript jest, was wie React ist. Ich meine, das ist Teil der WP-Skripte. Das sind die Dinge, die ich verwende, aber ich kann auch für Leute, die Website-Entwicklung betreiben, automatisierte Tests durchführen, mit Tools wie Go Students Spectre oder Checkley, wo Sie den Test programmieren können, indem Sie eine Browsererweiterung haben. Dann gehst du in den Browser, klickst auf Aufnahme und tust Dinge wie dich bei deiner Website anzumelden und einen Beitrag hinzuzufügen oder einen Block hinzuzufügen oder so etwas, dann können sie einmal am Tag auf deiner Website laufen oder einmal pro Woche. Und das ist eine Möglichkeit, automatisiertes Testen ohne Code durchzuführen. Wissen Sie, Leute, die Websites besitzen, und Sie wissen, dass es wirklich groß ist, wenn Ihr Kunde Ihnen eine Nachricht sendet und sagt: Hey, diese Seite ist kaputt. Das ist keine gute Möglichkeit, eine Interaktion mit Ihrem Kunden zu beginnen. Es ist so viel besser zu sagen, hey, unsere automatische Überprüfung weist darauf hin, dass das letzte Update den Abschnitt beschädigt hat und wir ihn bereits behoben haben.

DV: Ich denke an all die modernen Workflow-Episoden, die ich in diesen Jahren gemacht habe. Ich glaube nicht, dass eine Person jemals dieses Konzept davon eingeführt hat. Das ist wirklich clever. Das war großartig. Josh, vielen Dank, dass Sie heute zu uns gekommen sind.

JP: Gern geschehen. Danke für die Einladung.

DV: Wenn Sie mehr darüber erfahren möchten, was Josh vorhat, können Sie vielleicht Ihre eigene moderne WordPress-Entwicklerreise erweitern, besuchen Sie pluginmachine.com. Dies war Ihr Gastgeber David Vogelpohl. Ich unterstütze die WordPress-Community durch meine Rolle bei WP Engine. Und ich liebe es, Ihnen hier jede Woche das Beste aus der Community auf Press This vorzustellen.