name

Warum ist es gut, PHP zu wählen? Interview mit PHP-Entwicklern von Droptica

Die neue Version von PHP, die für November geplant ist, rückt näher. In einem der vorherigen Beiträge haben wir über Neuerungen in PHP 8 geschrieben, und ein eigener Artikel war dem JIT-Compiler gewidmet, der endlich offiziell als Funktionalität hinzugefügt wird.

Nachfolgend ein Interview mit PHP-Programmierern von Droptica, die seit vielen Jahren in PHP programmieren und genau wissen, wie sie die Vorteile dieser Sprache nutzen können, um den Kunden möglichst viele Vorteile beim Erstellen ihrer Websites zu bieten.

Wie viele Jahre arbeiten Sie schon mit PHP?

Sebastian Rogala: Beruflich – seit Ende 2013, was jetzt fast 7 Jahre macht.

Damian Skiba: Ich arbeite seit 9 Jahren als PHP-Programmierer.

Mariusz Andrzejewski: In Web-Technologien – seit 10 Jahren, wobei ich mich 7 Jahre auf PHP konzentriert habe.

Was sind Ihrer Meinung nach die größten Vorteile der PHP-Programmierung?

Sebastian Rogala: Die Flexibilität des geschriebenen Codes sowie die Tatsache, dass er derzeit schnell weiterentwickelt wird und es nicht so aussieht, als würde sich diese Entwicklung bald verlangsamen.

Damian Skiba: Die Stabilität der Anwendung in PHP. Die große Community.

Mariusz Andrzejewski: Die reichhaltige Syntax und die Fähigkeiten der Sprache erlauben es, sowohl statischen als auch dynamischeren Code zu schreiben. Wichtig ist für mich auch die aktive Weiterentwicklung der Sprache und die Community, die sich mit jeder Veröffentlichung auf immer durchdachtere Lösungen konzentriert.

Was macht PHP Ihrer Meinung nach wettbewerbsfähig im Vergleich zu anderen Programmiersprachen?

Sebastian Rogala: Ich glaube nicht, dass PHP das Patentrezept ist, das für alles verwendet werden kann und für jedes Projekt geeignet ist. Der Vorteil ist sicherlich die relativ niedrige Einstiegshürde für das Schreiben von Anwendungen. Die große Mehrheit der Webhostings bietet auch sofort nach dem Kauf ihrer Dienste einen PHP-Server an, und viele von ihnen bieten auch fertige Installer wie: Drupal, WordPress oder Joomla. Ich glaube, dass es einen deutlichen Vorteil unter den bestehenden und meist kostenlosen Lösungen für die meisten Grundbedürfnisse wie einen Blog oder einen Online-Shop hat, und mit dedizierten Systemen bietet es gut geschriebene und getestete Komponenten, sodass wir sie in vielen Fällen wie Puzzleteile hinzufügen können.

Damian Skiba: PHP ist eine webdedizierte Sprache. Es wurde mit dieser Art der Nutzung im Sinn geschaffen – im Gegensatz zu vielen anderen Sprachen, die als Allzwecksprachen entwickelt wurden.

Mariusz Andrzejewski: Durch langjährige Entwicklung und Aktivität gibt es bereits eine enorme Anzahl an fertigen Bibliotheken oder Plattformen für PHP, wie die beliebten CMSs: WordPress, Drupal, von denen sogar ein unerfahrener Programmierer vollständig profitieren kann.

Was sind Ihrer Meinung nach die größten Vorteile für Kunden, wenn eine Website auf PHP aufgebaut wird?

Sebastian Rogala: Ich denke, dass ein so hoher Anteil genau von diesen fertigen Systemen wie Blogs oder E-Commerce kommt. Wenn der Kunde gerade seine Reise zum Beispiel mit einem Online-Shop beginnt, gibt es keine Notwendigkeit, kommerzielle Lösungen einzusetzen. Und selbst wenn das Projektumfang groß ist, bietet PHP eigene Lösungen wie Magento. Auch die Content-Management-Systeme, wie die oben genannten Drupal oder WordPress, sind fertige Lösungen, die wir im Rahmen der PHP-Entwicklung in Zusammenarbeit mit unseren Kunden verwenden.

Damian Skiba: Es ist sehr einfach, von anderen Sprachen, z.B. C, C++, zu PHP zu wechseln – daher wurden viele Seiten auf PHP erstellt. Zum Beispiel war die erste Version von Facebook in PHP.

Mariusz Andrzejewski: PHP wurde zu einer Zeit geschaffen, als es nicht viele vernünftige Lösungen auf dem Markt gab, daher wurde es schnell als am häufigsten gewählte Serverseitensprache beliebt und diese Popularität bildet paradoxerweise bis heute seine Basis. Dank seiner weitverbreiteten Nutzung ist eine größere Anzahl von Programmierern auf dem Arbeitsmarkt verfügbar, was es viel einfacher macht, ein Projektteam zusammenzustellen oder ein dediziertes Team von Programmierern zu engagieren.

Was war das ambitionierteste Projekt, das Sie in PHP umgesetzt haben?

Sebastian Rogala: Ein gutes Beispiel ist das Etiketten-Status-System. Dies bestand darin, dem Kunden die Möglichkeit zu geben, seine eigenen Regeln für "Status hinzufügen" und "Status entfernen" aus der Bestellung zu erstellen. Es mag auf den ersten Blick einfach erscheinen, erfordert jedoch das Durchdenken des Datenflusses, da es sehr leicht ist, hängen zu bleiben oder in eine Schleife zu geraten. Es war auch notwendig, einen geeigneten Konfigurationsmechanismus bereitzustellen, damit der Nutzer selbstständig die Zustände und Aktionen definieren konnte, die durchgeführt werden sollten.

Damian Skiba: Programmieren eines Servers in Node.JS, der Nachrichten an hunderte von verbundenen Clients sendet. Und die gesamte Unterstützung für diesen Server wurde in Drupal entwickelt. Es wurden Fälle berücksichtigt, in denen, falls einer der Docker-Container herunterfährt, er neu gestartet werden muss. Und Container mit Node.JS und Drupal sollen synchronisiert werden, um zu wissen, was bereits an die Clients gesendet wurde und was noch in der Warteschlange ist.

Mariusz Andrzejewski: Eines der interessantesten und komplexesten Projekte, mit denen ich es zu tun hatte, ist die Mitwirkung an der Erstellung einer Site-Builder-Plattform, also einer Plattform zum Erstellen neuer Webportale. Die Vielzahl an möglichen Lösungen, die Flexibilität jedes einzelnen Bausteins sowie die Offenheit für Änderungen und dabei die Stabilität der bereits bestehenden Webportale zu wahren, waren die größten Herausforderungen, die uns gestellt wurden und die umgesetzt wurden.

Worauf soll Ihrer Meinung nach der Kunde achten, wenn er eine PHP-Webseite von Grund auf erstellen will und wenn er die aktuelle erweitern möchte?

Sebastian Rogala: In beiden Fällen ist die grundlegende Frage: "Wie groß soll das System sein und ist seine Weiterentwicklung geplant?" Wenn wir eine neue Seite erstellen, dann ist für etwas nicht zu Kompliziertes und ohne Pläne für eine langfristige Weiterentwicklung eines der beliebten Frameworks und die Nutzung von klassischem MVC oder Drupal ausreichend. Bei Projekten größeren Umfangs sollten andere Aspekte berücksichtigt werden – wie etwa Systemarchitektur im weiteren Sinne. Eine der populärsten Methoden ist die Verwendung von Symfony mit hexagonaler Architektur und der Weg in Richtung Microservices, obwohl es besser ist, einen modularen Monolithen zu erstellen.

Damian Skiba: Bei größeren Änderungen müsste ein Großteil der bestehenden Logik geändert werden. Wenn es sich um Drupal handelt, gibt es viel Spielraum zur Ergänzung dieser Funktionalität. Und wenn es nicht Drupal ist, wäre es eine gute Idee, darauf zu wechseln und die gesamte bestehende Logik in Drupal-Dienste umzuschreiben und dann die neue Funktionalität hinzuzufügen.

Mariusz Andrzejewski: Wie bei allem sind Menschen das Wichtigste. Die Vielfalt an verfügbaren Programmierern auf dem Markt übersetzt sich nicht immer in Qualität. Es lohnt sich vor allem, ein Team aus erfahrenen Programmierern und Architekten zusammenzustellen, die in der Lage sind, die Geschäftslogik in die beste Lösung zu übersetzen, indem sie die für eine spezifische Lösung am besten geeignete Technologie wählen.

Warum denken Sie, zieht Drupal mehr hochklassige PHP-Spezialisten an als jedes andere CMS?

Sebastian Rogala: Ich denke, das liegt daran, dass Drupal die größten Möglichkeiten beim Design und der Erstellung von Anwendungen bietet, verglichen mit anderen CMSs. Es hat auch eine höhere Einstiegshürde, was bedeutet, dass es gut ist, bereits einige Programmiererfahrungen zu haben, um sich in Drupal zurechtzufinden und effektive Lösungen zu schreiben.

Damian Skiba: Meiner Meinung nach liegt es an Drupal 8, das in Symfony geschrieben wurde.

Mariusz Andrzejewski: Als Mitglied des Drupal-Entwicklerteams denke ich, dass das CMS ein umfassendes ist, das auf den soliden Grundlagen der Symfony-Entwicklung basiert. Es ist sehr schwierig, Dinge auf unkonventionelle Weise zu bearbeiten, sodass die erfahrensten Programmierer, die keine Angst davor haben, mit Dokumentationen zu arbeiten und die Logik des gesamten Anwendungscodes zu verstehen und nachzuvollziehen, besser darin sind.

Welches PHP-Framework verwenden Sie am häufigsten und was sind seine Vorteile?

Sebastian Rogala: Ich beschäftige mich zuletzt viel mit Laravel, habe jedoch die meiste Arbeit mit dem Zend Framework, jetzt Laminas genannt. Meiner Meinung nach ist es ein "Schwester"-Framework zu Symfony. Die Hauptvorteile sind die Modularität und die Verwendung der meisten "guten" Design-Patterns. Der Ansatz "Konfiguration statt Konvention" hat ebenfalls seine positiven Aspekte, da er uns große Flexibilität bei der Bereitstellung maßgeschneiderter Lösungen gibt. Dank dessen müssen wir uns z.B. nicht an das MVC-Architekturmuster halten, sondern haben auch die Freiheit, Hexagonal oder CQRS zu nutzen.

Damian Skiba: Symfony. Für mich ist der Vorteil die "Abhängigkeitsinjektion" und die Geschwindigkeit des Betriebs.

Mariusz Andrzejewski: Aufgrund meiner starken Bindung an Drupal finde ich das Symfony-Framework am nähesten. Sowohl Drupal als auch Symfony werden am häufigsten von Fachleuten verwendet, und eine riesige Gemeinschaft von Programmierern arbeitet an der Weiterentwicklung und Verbreitung von ihnen.

Wenn Sie einen Anfänger-Programmierer überzeugen müssten, welches Argument würden Sie verwenden, um ihn zum Lernen von PHP zu bewegen?

Sebastian Rogala: Erstens glaube ich nicht, dass irgendein Werkzeug (und das ist eine Programmiersprache) für jede Situation geeignet ist. Andererseits, wenn das Interesse und die Richtung einer Person mit der breit verstandenen Entwicklung von Webanwendungen verbunden sind, denke ich, dass ein gutes Argument die niedrige Einstiegshürde und die Fähigkeit ist, schneller als in anderen "Server"-Sprachen zu arbeiten und Ergebnisse zu sehen. Ein weiterer Punkt ist die Flexibilität von PHP und eine sehr große Community, die viele bereits fertige Lösungen bietet. Ich denke, das sind gute Argumente für einen Anfänger-Programmierer.

Damian Skiba: Niedrige Einstiegshürde. Wenn Sie eine Programmiersprache aus der Schule oder Hochschule kennen, können Sie ohne große Probleme PHP lernen.

Mariusz Andrzejewski: Die einfache Erlernbarkeit, eine große und aktive Community, die in einem umfangreichen Wissensschatz im Internet resultiert. Die fertigen Lösungen werden die sogenannte "Einstiegshürde" noch weiter senken.

Was wird Ihrer Meinung nach in der neuen Version von PHP am wertvollsten sein?

Sebastian Rogala: Union Types, Named Arguments, Match Expressions. Es gibt einige interessante Elemente, die zu erwähnen sind.

Damian Skiba: JIT, dank dessen PHP sogar noch schneller laufen wird.

Mariusz Andrzejewski: Viele PHP-Programmierer mögen seine dynamische Natur. Ich freue mich jedoch über die Änderungen in Richtung größerer Kontrolle über den Zustand der Anwendung, einschließlich der Kontrolle über die angezeigten Fehler, die mit der neuesten Veröffentlichung der Sprache bereinigt werden.

Zusammenfassung

Wir warten ungeduldig auf die Veröffentlichung von PHP 8. Wir werden einen genauen Blick auf die Lösungen werfen und prüfen, wie sich die neuen Funktionen auf die tägliche Entwicklungsarbeit in unserer Agentur auswirken.

3. Best practices for software development teams