Warum Justin Holt sich auf Craft CMS spezialisiert hat
Hallo Justin, danke, dass du dir die Zeit genommen hast. Bevor wir anfangen, erzähle mir doch bitte etwas über dich selbst.
Ja, ich lebe in Charlotte (North Carolina) in den USA. Ich bin ein langjähriger Webentwickler. Meine erste Website habe ich 1996 im College erstellt. Ich habe jede Art von Website erstellt, die man sich vorstellen kann. In den letzten fünf Jahren habe ich mich auf Craft CMS, Yii und PHP spezialisiert. Ich mache sowohl Frontend- als auch Backend-Entwicklung. Und ich betreibe meine eigene Webentwicklungs- und Beratungsfirma. Im Wesentlichen bin ich Freiberufler und arbeite als Unternehmen und für verschiedene Agenturen in den USA und Europa in den Bereichen Craft CMS-Entwicklung, Beratung und Schulung. In den letzten 8–10 Monaten habe ich viele Beratungen durchgeführt und anderen Craft-Entwicklungsteams geholfen, ihre Kenntnisse zu verbessern.
Ich leite auch die lokale Charlotte Craft Meetup-Gruppe. Wir treffen uns monatlich. Wir machen Meetups über Entwicklungsthemen wie Craft-Sicherheit und Hosting. Wir versuchen, ein breites Spektrum an Fähigkeiten anzusprechen und das Interesse an Craft CMS zu verbreiten. Ich liebe PHP, Craft und Yii. Ich bin definitiv ein Evangelist. Ich habe im Laufe der Jahre viele verschiedene CMS benutzt, wie WordPress, Drupal, ExpressionEngine und Magento. Ich denke, dass die Erfahrung für Entwickler und Redakteure mit Craft CMS und Yii bei Weitem die beste ist. Ich habe mich in diesem Teil meiner Karriere auf Craft spezialisiert.
Wie war dein Weg vom College zum Webentwickler?
Sobald ich 2001 mein Studium abgeschlossen hatte, begann ich, mich landesweit für die Entwicklung maßgeschneiderter Websites zu vermarkten. Ich nannte mich Aqua, was so viel wie Wasser bedeutet. Ich betrachtete es als: Ich bin flüssig/flexibel und kann jede Website erstellen. Ich war ziemlich erfolgreich. Davon lebte ich 7 oder 8 Jahre nach dem College. Im Jahr 2007 zog ich zurück nach Charlotte, wo ich aufgewachsen bin. Die Stadt ist eine der größeren im Südosten. Und ich wollte ausprobieren, für einige Agenturen zu arbeiten. Also habe ich in der Gegend für 5 oder 6 verschiedene Agenturen gearbeitet. Ich mochte es, aber irgendwie dann auch nicht. Ich vermisste es, meinen eigenen Ablaufplan zu haben und meine eigenen Dinge zu tun. 2019 entschied ich mich, wieder als Freiberufler in Vollzeit zu arbeiten
Welches war das erste richtige CMS, das du für Kunden eingesetzt hast?
Das wäre WordPress – also in den frühen Tagen von WordPress. Ich war auf einem der allerersten WordCamps. Es war in Richmond, Virginia. Das war wahrscheinlich 2005. Ich fand, dass WordPress wirklich ordentlich und sehr ausgefeilt war – sogar in den frühen Stadien der Entwicklung. Eine Sache, mit der ich mich nie gut auseinandergesetzt habe, war die Bildverwaltung und das Hochladen von Bildern für die rudimentären Content-Management-Systeme, die ich damals zusammenstellte. WordPress war also eine große Sache für mich, weil es eine echte Bildverwaltungssteuerung für den Kunden bietet. So fing ich an, mich intensiver mit WordPress zu beschäftigen.
Zu dieser Zeit begann ich, mich in objektorientierte Programmierkonzepte einzuarbeiten. Ich begann, ein wenig über CodeIgniter zu lernen. Ich fand Geschäftssituationen und Probleme, für die WordPress und Magento nicht geeignet waren. Ich benötigte mehr kundenspezifische Entwicklungen, also habe ich mich intensiv mit CodeIgniter beschäftigt. Habe etwa ein Jahr mit CodeIgniter gearbeitet, etwa 2010 oder 2011? Zu dieser Zeit begann ExpressionEngine einen gewissen Marktanteil zu gewinnen. Ich begann, meine WordPress-Kunden auf ExpressionEngine zu migrieren, weil es einen besseren Sicherheitsaspekt und viel mehr Anpassungsmöglichkeiten hatte. Und die Abkehr von der ganzen Art, wie WordPress alles handhabt, führte mich zu Craft selbst.
Ich habe Craft nicht so oft benutzt, als Brandon es veröffentlichte. Aber ich fing an, in einer Agentur in Charlotte zu arbeiten, die Craft verwendete. Es gab also keinen besseren Zeitpunkt, um Craft zu lernen, als wenn man es für seinen Job benötigt. Bei den ersten Websites, die ich mit Craft erstellt habe, dachte ich, mir: "Toll. So eine ausgereifte und gut strukturierte Plattform."
Du hast ExpressionEngine wegen CodeIgniter verwendet. Was ist mit Craft und Yii?
Jetzt, wo ich so viel mit Yii arbeite, ist es mehr Konfiguration als Konvention, was genau das Gegenteil von CodeIgniter ist, das mehr Konvention als Konfiguration ist. Mir gefällt das MVC-Muster von Yii ein wenig besser. Wahrscheinlich hätte ich das vor zehn Jahren noch nicht gesagt. Aber CodeIgniter funktioniert exzellent. Ich habe immer noch ein paar alte Websites, die darauf basieren. Es ist einfach eine Entwicklung im Lebenszyklus eines Entwicklers. Man ist für ein Muster, gegen ein anderes Muster, bis man das Anti-Muster ausprobiert, und dann mag man es doch lieber.
Wie hältst du dich über die Trends in der Webentwicklung auf dem Laufenden?
Abends lese ich viel. Vor 10–15 Jahren verlagerte sich der Schwerpunkt der Entwicklergemeinde auf die Verwendung von Tools und Paketen für das Frontend. Als dann Node und NPM und ähnliche Dinge aufkamen, war das eine schwierige Zeit, um sich nicht überfordert zu fühlen. Ein anderer Kollege, Trevor Plassman, gab mir einige gute Ratschläge:
Lerne, was dir bei deiner täglichen Arbeit helfen wird. - Trevor Plassman
Es gibt keinen Menschen auf diesem Planeten, der alles über Webentwicklung wissen kann. Es ist sogar so weit gekommen, dass man sich für eine Richtung entscheiden und sich darauf spezialisieren muss.
Heutzutage, mit Craft, verbringe ich viel Zeit auf Discord, lese, vor welchen Herausforderungen die Leute stehen, und schaue, wie ich helfen kann, diese zu lösen, oder ob ich eine ähnliche Herausforderung hatte und wie ich diese Herausforderung in Craft gelöst habe. Ich lese nicht mehr viele Blogs. Ich habe ein Abonnement für Craftquest. Ich muss meinen Hut vor Ryan ziehen. Craftquest ist eine großartige Lernressource für angehende und erfahrene Webentwickler. Ich habe viel Zeit auf CraftQuest verbracht und zugesehen und zugehört. Ich höre mir ständig Andrews und Ryans Podcast devmode.fm an. Ich bin immer dabei, wenn Andrea und Ben ihre Craft Twitter Spaces veranstalten. Jetzt, wo ich mich auf Craft spezialisiert habe, kann ich mich auf das konzentrieren, was in der Craft Community passiert. Ich versuche, Arbeit und Leben unter einem Hut zu bringen und mich nicht schnell zu überfordern.
Warum hast du dich auf Craft CMS spezialisiert?
Ich hatte viel in der Craft Community gearbeitet. Und ich hatte damals beschlossen, dass ich mich darauf spezialisieren würde. An Aufträgen hat es mir nicht gemangelt. Ich musste auch Aufträge ablehnen, weil ich keine Zeit hatte, sie zu erledigen. Ich habe den Absprung geschafft und bin seitdem nicht glücklicher. Ich habe für viele verschiedene bekannte Craft-Entwicklungsfirmen gearbeitet. Ich habe meine Kompetenzen erweitert und viel mit Servermanagement und Plug-ins zu tun gehabt. Das hat Spaß gemacht. Ich liebe es, Websites zu erstellen. Ich liebe es, Probleme zu lösen. Ich liebe die Befriedigung, einem Unternehmen dabei zu helfen, sein Geschäft online zu betreiben. Und ich bin überzeugt, dass Craft CMS das beste Werkzeug dafür ist.
Außerdem habe ich mich definitiv in die Community verliebt. Ich habe das Gefühl, dass von allen Web-Communities, in denen ich im Laufe meiner Karriere war, die Craft-Community die offenste ist. Die Craft-Community ist die offenste, teilungsfreudigste und einfühlsamste Gemeinschaft, die man sich wünschen kann. - Justin Holt
Ich habe viel gelernt und angefangen, mein Wissen mit der Community zu teilen. Wir alle nehmen Neulinge in der Sprache und auf der Plattform gut auf und geben ihnen das Gefühl, willkommen zu sein, was für uns alle als Craft-Entwickler besser ist. Das bedeutet, dass mehr Websites auf Craft CMS umgestellt werden, was mehr Arbeit für uns alle bedeutet.
Du wirst auf der Dot All 2022 als Redner auftreten. Über welche Themen wirst du sprechen?
Mein Thema ist ein anderer Ansatz zur Modellierung von Inhalten in Craft. Die längste Zeit – mich eingeschlossen – haben viele Entwickler das Matrixfeld befürwortet. Aber viele Content-Manager – von der Kundenseite aus – mochten es wirklich, alle Inhalte auf einer CMS-Seite zu sehen, die im Frontend ausgegeben werden. Matrix ist einfach zu handhaben, besonders wenn man Neo oder andere Plug-ins einfügt. Aber letztlich kann die Verwendung von Matrix zur Verwaltung aller Inhalte auf einer Seite zu einer Unmenge von Abfragen führen. Der große Nachteil ist, dass alle Blöcke innerhalb der Matrix nur in diesem Eintrag vorhanden sind. Es gibt keine Möglichkeit, sie zu kopieren und zu wiederholen, außer man kopiert sie manuell auf eine andere Seite.
Vor Jahren zeigte mir ein anderer Entwickler die Art und Weise, wie er Inhalte pflegte. Er verwendete Matrix nicht als alleinigen Verwalter der Komponenten auf der Seite. Und ich sage Komponenten im Kontext eines Blogs. Es geht darum, verschiedene Kanäle oder Strukturen als Komponenten zu verwenden. Nehmen wir an, du hast einen Hero-Channel und einen Grid-Channel, was immer du für dein Build-System benötigst. Und man verwendet Beziehungsfelder wie Eintragsfelder, um zu verwalten, was in diesen bestimmten Eintrag integriert und ausgegeben wird. Zuerst dachte ich: "Das wird irgendwie komisch sein", weil man die meisten Inhalte auf der eigentlichen Seite, die man in einem CMS bearbeitet, nicht verwalten wird. Aber in Craft 3 hatten wir dieses kleine ausziehbare Editor-Panel, mit dem man auf einen verwandten Eintrag doppelklicken und etwas davon bearbeiten konnte.
Ich mag dieses Inhaltsmodell noch immer, weil es wiederholbare Inhalte und wiederholbare Blöcke auf verschiedenen Einträgen von einem Eintrag aus ermöglichen würde. Falls du denselben CTA-Block auf verschiedenen Websites verwenden möchtest, ginge das. Einmal anlegen und ihn über viele andere Einträge hinweg verwalten. Und du kannst diese immer noch per Drag & Drop in einem Eintragsfeld anordnen. Es dauerte eine Weile, bis ich mich daran gewöhnt hatte, aber nachdem ich angefangen hatte, meine Websites und mein Schema auf diese Weise zu modellieren, stellte ich fest, dass sich die Anzahl der Abfragen dadurch erheblich verringerte. Auch die Leistung beim Speichern von Einträgen wurde dadurch verbessert. Wenn du jemals einen Entwurf für eine Seite mit einem Matrix-Content-Builder gespeichert haben, einen Eintrag mit 17 verschiedenen Blöcken, dann dauert das Speichern einige Zeit. Es finden eine Menge Abfragen statt.
Ich verwende immer noch Matrix, aber es ist eher ein sauberes Pattern, das die Komponenten und den Inhalt innerhalb dieser Komponenten von den eigentlichen Einträgen abstrahiert. Meiner Meinung nach ist dies die beste Methode, um ein Schema zu strukturieren und dann die Inhalte zu verwalten. Der einzige Nachteil ist, dass man einen Kunden braucht, der dieses Schema versteht. Aber mit Craft 4 und den grundlegenden Verbesserungen am Full-Slideout-Editor können all diese "Komponenteneinträge", die auf der Seite eingefügt, mit der Beziehung zum eigentlichen Eintrag selbst verwalten werden. Ich werde das auf auf der Dot All 2022 demonstrieren. Ich baue eine Website, um zu zeigen, wie man dieses Konzept in der realen Welt anwenden kann.
Ich finde Matrix fantastisch, aber ich habe das Gefühl, dass es eine Grenze gibt, die man erreichen kann und die schließlich die Leistung beeinträchtigt. - Justin Holt
Einige Kunden haben wilde Sachen mit Matrix gemacht.
Das ist leicht zu bewerkstelligen. Bei einigen Projekten mache ich das immer noch. Du musst deine Kunden einschätzen, besonders wenn sie von einem anderen CMS wie WordPress kommen. Sie sind es gewohnt, alle Inhalte auf einer Seite zu verwalten und in Seiten zu denken. Sie denken nicht an ein Build-System und Inhalte als Bürger erster Klasse im Konzept der gesamten Website.
Als Craft-Entwickler haben wir es wirklich mit Konkurrenten wie Webflow zu tun. Solche Tools werden immer ausgereifter und ermöglichen, eigene Seiten zu erstellen. Wenn ich dabei helfen kann, diese Art von Erfahrung zu verbessern und wie man Craft Schema besser nutzt, dann denke ich, dass uns das auch zu mehr Marktanteil verhilft.
Hast du noch etwas hinzuzufügen?
Ich möchte allen Craft-Entwicklern da draußen sagen: Danke, dass ihr Craft als Ganzes unterstützt. Je mehr Websites wir bauen oder auf Craft umstellen können, desto besser für uns alle als Gemeinschaft. Denn das führt zu mehr Arbeit für uns alle. Behaltet einfach den Glauben! Ich weiß, dass einige in der Community Angst vor dem kürzlichen Wechsel von Craft 3 zu Craft 4 haben. Jeder große Versionssprung bei einer Plattform hat seine Tücken. Ich habe eine ganze Reihe von Websites auf Craft 4 umgestellt. Einige davon waren einfach, andere waren sehr schwierig. Wenn wir mit Craft weiter am Ball bleiben und der Community so viel Feedback wie möglich geben, dann wird alles besser werden.