PHP-Entwickler Martin Joo über die Verwendung von Laravel, wie …

Hinweis: Der folgende Artikel hilft Ihnen dabei: PHP-Entwickler Martin Joo über die Verwendung von Laravel, wie …

PHP-Entwickler Martin Joo über die Verwendung von Laravel, wie ...

Der Softwareentwickler und Content-Ersteller Martin Joo hat einen Großteil seiner Reise damit verbracht, an PHP, Laravel und APIs herumzubasteln. Als überzeugter Verfechter von domänengesteuertem Design und testgetriebener Entwicklung haben Martins Bücher über Laravel ihm einen einflussreichen Namen in der Community eingebracht. Zu seinen Schriften gehören Titel wie „Microservices with Laravel“, „Laravel Eloquent Recipes“ und „Proper API Design with Laravel“.

Wir freuen uns, heute die Gelegenheit zu haben, Martins Gedanken zu hören, während er uns von seiner beruflichen Laufbahn erzählt, Einblicke in seine Bücher und seinen Schreibprozess gibt und erklärt, warum er nach dem Versuch, Managed Cloud Hosting auszuprobieren, nie wieder zum herkömmlichen Shared Hosting zurückkehren wird.

Shahzeb: Hallo Martin, es ist schön, dich bei diesem Interview dabei zu haben. Könnten Sie unseren Lesern bitte etwas über sich erzählen? Gibt es Erkenntnisse, die Sie über Ihren beruflichen Werdegang mit uns teilen möchten?

Martin: Hallo! Es ist schön, hier zu sein! Ich bin also seit 2012 Entwickler, als ich 19 Jahre alt war. Seitdem arbeite ich hauptsächlich an größeren B2B-Anwendungen. Im Moment arbeite ich für ein Startup in Ungarn. Wir entwickeln eine HR-, PR- und eine Art Social-Engagement-Anwendung für große Unternehmen. Die korrekte Kommunikation mit Zehntausenden Mitarbeitern stellt für diese Unternehmen eine echte Herausforderung dar, daher versuchen wir, dieses Problem zu lösen. Und Sie wissen, wir stehen vor den alltäglichen Herausforderungen eines größeren, komplexen Projekts mit vielen Funktionen.

Shahzeb: Können Sie Ihre Reise mit Laravel teilen? Gibt es relevante Erfahrungen aus Ihrer Karriere, die Sie interessant finden und die Sie gerne mit unserem Publikum teilen würden?

Martin: Ich benutze Laravel seit etwa 2015 und es war Liebe auf den ersten Blick. Ich hatte bereits Erfahrung damit Java Und C#Daher gefiel mir sofort die Einfachheit des Frameworks.

Ich denke, meine wertvollste Erfahrung war, als ich herauszufinden versuchte, wartbare, größere Projekte zu entwickeln und dabei die Einfachheit von Laravel beizubehalten. Ich habe so viele Dinge ausprobiert; Ich habe so viele Muster angewendet; Ich habe einige sehr überentwickelte Architekturen implementiert. Nach Monaten (wenn nicht Jahren) gescheiterter Versuche beschloss ich, die besten Teile des domänengesteuerten Designs zu übernehmen und sie in Laravel-Projekte zu integrieren und dabei die Einfachheit des Frameworks beizubehalten. Das beste Feedback bekam ich, als ich mich auf Twitter registrierte und sah, dass andere Leute aus der Community sehr ähnliche Lösungen anwendeten. Ich spreche von Namen wie Freek Van Der HertenBrent, Steve King und normale Entwickler wie Sie und ich.

Eine weitere großartige Erfahrung war, als ich endlich erkannte, dass Funktions- und API-Tests in einer Geschäftsanwendung auf hohem Niveau überlegen waren. Davor war ich ein „Hardcore“-Unit-Tester. „Isolation“ war wahrscheinlich mein Lieblingsschlagwort. Aber nachdem ich einige Videos von Jeffrey Way und Adam Wathan über Funktionstests gesehen hatte, habe ich nie mehr zurückgeschaut.

Shahzeb: Martin, du hast das Buch auch geschrieben Domänengesteuertes Design mit Laravel. Könnten Sie uns etwas über dieses Buch erzählen? Wer sollte dieses Buch lesen und welchen Nutzen haben Entwickler davon?

Lesen:  Begriffe und Konzepte, die in SEO verwendet werden

Martin: Die „perfekte Architektur“ zu finden und das „perfekte Projekt“ zu entwickeln, war für mich immer wie der „heilige Gral“. Ich habe an Projekten gearbeitet, die 8, 10 oder mehr als 10 Jahre alt sind, daher war es wichtig, die Architektur sauber zu halten. Und wie ich bereits sagte, ich habe so viele Dinge ausprobiert. DDD war sehr vielversprechend. Aber es war superkomplex und, um ehrlich zu sein, eine schlechte Wahl für Laravel. Ich spreche von „DDD“ mit sehr strengen Regeln und wahrscheinlich mehr als 25 komplizierten, abstrakten Begriffen wie „Polysemie“ oder „Mehrere kanonische Modelle.“

Ich fand diese Konzepte gut, wurden aber akademisch präsentiert und führten zu Code, der nicht zu Laravel passte. Diese Leute kamen aus der Java- oder C#-Welt, wo die Dinge anders und „bürokratischer“ waren.
Infolgedessen habe ich diese Konzepte konsequent auf eine viel einfachere Art und Weise mit nur einer Handvoll strenger Regeln angewendet. Und sie haben funktioniert. Sie arbeiteten auch gut in Teams mit Junior- und Mittelentwicklern zusammen.

Eines Tages fragte ich mich: „Warum nicht ein Buch darüber schreiben und es mit anderen teilen?“ Und schließlich habe ich das Buch geschrieben. Ich glaube, dass es am besten für fortgeschrittene und erfahrene Entwickler geeignet ist, die bereits über gute Erfahrung verfügen, aber eine bessere Architektur wünschen.

Shahzeb: Welche Art von Recherche betreiben Sie und wie lange verbringen Sie mit der Recherche, bevor Sie mit dem Schreiben eines Buches beginnen?

Martin: Die Hauptrecherche, die ich für dieses Buch durchgeführt habe, war die Beispielanwendung. In jedem Buch, das ich schreibe, erstelle ich ein Beispielprojekt, das dem Leser zeigt, wie er die Konzepte in einer realen Anwendung anwenden kann. Ich wollte für dieses Buch etwas Kompliziertes entwickeln, das die Vorteile des domänengesteuerten Designs nutzt. Zuerst dachte ich, es wäre so etwas wie Twitter. Jeder kennt Twitter, und da meine Zielgruppe herkommt, wäre es ein tolles Beispiel gewesen. Aber wie sich herausstellte, ist Twitter ziemlich einfach. Ich meine, aus Sicht eines Domänenmodells (nicht aus Sicht eines Algorithmus oder eines Empfehlungssystems).

Meine nächste Idee war also E-Mail-Marketing oder E-Mail-Dienstleister. Ich denke, jeder Entwickler weiß es MailChimp, Tropfenoder ConvertKit, weil das Unternehmen oft ein Publikum hat und wir uns mit diesen Anbietern integrieren müssen. Oder im schlimmsten Fall müssen wir unseren eigenen Newsletter-Service oder unser eigenes Modul schreiben (hi!). Und sie verfügen über einige sehr komplizierte Funktionen (z. B. E-Mail-Sequenzen oder Automatisierung), daher dachte ich, dass dies das perfekte Beispiel wäre, um es in das Buch einzubauen.

Danach habe ich etwa ein bis zwei Wochen damit verbracht, die Hauptfunktionen von ConvertKit zu kopieren und das gesamte System zu modellieren. Wie sich herausstellte, war es das perfekte Beispiel!

Eines der Pakete des Buches enthält außerdem den Quellcode und einen Fall über eine Portfolio- und Dividenden-Tracker-App. Glücklicherweise fiel mir die Entscheidung leicht, da ich dieses Projekt bereits hatte. Es war meine persönliche Portfolio-Tracker-App (schließlich bin ich Softwareentwickler und verschwende gerne meine Zeit damit, unnötige Anwendungen zu schreiben). Und ich dachte, es wäre eine perfekte Gelegenheit, eine Fallstudie über die Datenmodellierung und das Gesamtdesign zu erstellen.

Lesen:  Erstellen von WordPress-E-Commerce-Websites mit WooCommerce

Da es sich jedoch um ein persönliches Projekt mit einem privaten Github-Repository handelte, hatte ich zunächst meine Gmail-Adresse und alle meine Bestände und Finanztransaktionen im Datenbank-Seeder. Nachdem ich es gelöscht hatte, überprüfte ich die gesamte Codebasis mindestens viermal, um sicherzustellen, dass alles zum Teilen bereit war.

Shahzeb: Sie verfügen über umfassende Kenntnisse der Laravel-Entwicklung. Was hat Sie dazu motiviert, Laravel-Webentwickler zu werden? Wer waren Ihre Mentoren und Inspirationen auf dieser Reise?

Martin: Vielen Dank, aber ich habe viele Bereiche, in denen ich mich verbessern könnte! Meine Hauptmotivation war die Einfachheit von Laravel. Ich weiß, dass es ein Klischee ist, aber es stimmt, und es ist ein entscheidendes Merkmal eines Frameworks. Vor Laravel habe ich hauptsächlich mit Kohana, Yii und ein bisschen Symfony gearbeitet. Zum Beispiel ist Symfony meiner Meinung nach ein großartiges Framework und eine Grundlage von Laravel, aber die Verwendung von Symfony fühlt sich im Vergleich zu Laravel so „laut“ und „bürokratisch“ an.

Ein weiterer großer Beweggrund ist natürlich das riesige Ökosystem. Ich meine, Laravel hat für jedes Problem einen First-Party-Service oder ein First-Party-Paket. Denken Sie nur an Forge oder Breeze! Und auch die Zahl der Pakete von Drittanbietern ist riesig. Als Bonus gibt es bei uns auch Spatie 🙂 Und wenn man noch einen Schritt weiter geht, findet man zum Beispiel auf Twitter eine riesige Community.

Eine weitere tolle Sache an Laravel ist, dass es von einem Unternehmen verwaltet wird. Die Wahrscheinlichkeit, dass Laravel von seinen Betreuern aufgegeben wird, ist also nahezu Null (so wie Kohana oder ein Dutzend anderer Frameworks aufgegeben wurden).

Und zu guter Letzt gibt es in der Laravel-Community viele großartige Content-Ersteller. Nur um ein paar zu nennen:

Im Grunde waren sie meine Mentoren, als ich ein Junior-Entwickler war, und sie sind es auch heute noch. Und natürlich einige meiner Kollegen.

Shahzeb: Möchten Sie unseren Lesern von einigen der besten Laravel-Projekte erzählen, an denen Sie gearbeitet haben?

Martin: Ich würde sagen, dass das aktuelle Projekt, an dem ich arbeite, ziemlich cool ist. Erstens verfügt es über unglaublich viele Funktionen. Sie können alles tun, von der Erstellung von Communities über das Posten sozialer Updates, die Verwaltung von Tickets und Feiertagen bis hin zur Verwaltung der Cafeteria. Die Vielzahl der Funktionen stellt Sie vor große Herausforderungen. Vermeiden Sie beispielsweise Spaghetti-Code, wenn es einige verbundene Funktionen oder komplizierte Anfragen zu einer älteren Funktion gibt.

Eine weitere Herausforderung besteht darin, dass ein Teil der Codebasis vor einigen Jahren von einem anderen Team geschrieben wurde. Und leider hatten sauberer Code oder Testabdeckung nicht ihre Priorität. Aber ich habe kein Problem damit, Legacy-Code zu testen und umzugestalten, daher ist es immer eine gute Herausforderung. Allerdings mag ich eine gute Balance zwischen neuen Funktionen und dem Hacken von Legacy-Code.

Lesen:  13 Websites wie Dormify im Jahr 2024

Shahzeb: Welche Art von Webhosting würden Sie bevorzugen? Was sind Ihrer Meinung nach die Vorteile des Hostings einer Website bei einem Anbieter verwalteter Lösungen im Vergleich zu herkömmlichem Shared Hosting?

Martin: Ich nutze ausschließlich Managed Provider. Sie geben mir buchstäblich alles, was ich brauche, PHP, MySQL, Redis usw. Ich bin nicht der größte DevOps-Typ der Welt, daher zahle ich gerne dafür, ein Expertenteam zu haben, das weiß, wie man diese Komponenten verwaltet und wartet !

Mir gefällt auch, dass heutzutage viele Aufgaben mit unserem Browser erledigt werden können, anstatt ein Terminal hochzufahren und komplizierte Linux-Befehle auszuführen.

Ehrlich gesagt glaube ich nicht, dass ich jemals wieder zum herkömmlichen Shared Hosting zurückkehren würde.

Shahzeb: Was halten Sie von verwalteten Hosting-Lösungen wie DreamHost, die einen optimierten PHP-Stack bereitstellen und das Laravel-Framework mit einem Klick mit Funktionen zur Bereitstellung ihrer Web-Apps anbieten?

Martin: Cloud-Anbieter mit verwalteten Lösungen zu haben, ist eines der unglaublichsten Dinge, die unserer Branche in den letzten Jahren passiert sind!

Mit DreamHost können Sie einen neuen Server buchstäblich in nur 5 Minuten bereitstellen. Und es installiert alles, was eine Laravel-Anwendung benötigt. Aber was noch wichtiger ist: Nachdem Sie Ihre Anwendung ausgeführt haben, können Sie eine Version mit einem Klick bereitstellen. So einfach ist das.

Ein paar Jahre zuvor, als ich noch keine Linux- oder Betriebserfahrung hatte, war der Kampf mit Servern und dem Terminal immer der Hauptgrund dafür, dass ich nicht zu viele Nebenprojekte gestartet hatte. Es war eine Belastung für mich. Heutzutage, wo wir mehrere tolle Anbieter haben, ist der Start eines Projekts kein „Miniprojekt am nächsten Wochenende“ mehr. Es ist eine einstündige Aufgabe in Ihrer Mittagspause!

Shahzeb: Was machen Sie gerne, wenn Sie nicht an Ihrem Laptop sitzen?

Martin: Ich spiele Gitarre in einer Rockband und ich liebe Musik. Normalerweise haben wir im Sommer immer ein paar Gigs zu spielen und nach den Shows ein paar Bier zu trinken 🙂

Außerdem liebe ich es, Sport zu treiben. Ich habe Kampfsportarten schon immer geliebt und in den letzten Jahren einige davon ausprobiert, aber Boxen ist mein Favorit. Heutzutage habe ich jedoch vor, die Thai-Box auszuprobieren.

Ansonsten liebe ich es, Zeit mit Familie und Freunden zu verbringen.

Shahzeb: Wen sollten wir als nächstes interviewen und warum?

  • Steve King
  • Matt Kingshott
  • Povilas Korop
  • Nuno Maduro

Shahzeb: Martin, ich bin sicher, viele Leute haben sich Notizen gemacht. Ich bin mir auch sicher, dass sie gerne ein Bild Ihres Arbeitsplatzes sehen würden, wenn Sie eines teilen möchten!

Martin: Tut mir leid, aber mein Arbeitsplatz ist eigentlich ziemlich langweilig. Ich würde es also nicht teilen, wenn es in Ordnung ist 🙂

Shahzeb: Klar, nochmals vielen Dank, Martin Joo!