
Warum Community-Übersetzung für WordPress-Themes und -Plugins nicht skalierbar ist
Unsere Analyse von 60.000+ WordPress-Plugins und -Themes zeigt, dass die Community-Übersetzung weniger als 5 % des Bedarfs in 40 Sprachen abdeckt.
Funktionale Programmierung ist heutzutage ein heißes Thema unter Entwicklern, und das nicht ohne Grund. Version 4.5 von WPML war ein groß angelegtes Projekt, das die Option einführte, Ihre Website automatisch zu übersetzen. Für uns war es auch der richtige Moment, zur funktionalen Programmierung zu wechseln. Hier ist, was wir dabei gelernt haben.
Sie haben wahrscheinlich gehört, dass funktionale Programmierung Ihren Code lesbarer und einfacher zu testen macht. Aber um funktionale Programmierung vollständig zu begreifen, ist es wichtig, die damit verbundenen Konzepte zu verstehen.
Zunächst einmal ist funktionale Programmierung ein Programmierparadigma, bei dem der Schwerpunkt darauf liegt, Funktionen zur Konstruktion von Software zu verwenden und Funktionen zusammenzusetzen, um komplexere Funktionen zu erstellen. Funktionale Programmierung macht den Code von Natur aus deklarativer. Sie drücken aus, was Sie wollen, anstatt eine Abfolge von Anweisungen zu haben, die den Programmstatus aktualisieren.
Es ist wichtig, die verwendeten Funktionen zu beachten – insbesondere reine Funktionen. Reine Funktionen empfangen Daten und geben Daten zurück, haben aber keine anderen Seiteneffekte. Das macht die Funktionen sehr einfach zu testen, denn wenn Sie die gleichen Parameter übergeben, erhalten Sie das gleiche Ergebnis.
Einfach ausgedrückt: Bei der funktionalen Programmierung hängt die Ausgabe von der Eingabe ab.
WPML ist ein großes und komplexes Projekt. Bis vor kurzem haben wir die objektorientierte Programmierung (OOP) genutzt, um zu versuchen, diese Komplexität zu bewältigen. Eine der größten Herausforderungen ist das Schreiben von Testcode (Unit-Tests) für alle unsere Projekte. Wenn wir testbaren Code schreiben, müssen wir sicherstellen, dass unsere Änderungen den bestehenden Code nicht beschädigen.
Das Unit-Testing von OOP-Code hat seine Grenzen. Code-Abhängigkeiten müssen gemockt werden, damit Klassen unabhängig voneinander getestet werden können. Infolgedessen werden die Tests groß und komplex.
Der Hauptfokus der funktionalen Programmierung soll auf dem „Was zu lösen ist“ liegen. Im Gegensatz dazu verfolgt die objektorientierte Programmierung den Ansatz „Wie es zu lösen ist“. Vor diesem Hintergrund schien es, als könnte uns die funktionale Programmierung helfen, einige unserer Herausforderungen zu überwinden.
Wenn wir über funktionale Programmierung sprechen, ist PHP nicht die erste Sprache, die einem in den Sinn kommt – obwohl sie es uns ermöglicht, einen funktionalen Stil einzuführen. Zum Beispiel verwenden Hooks und Filter, die es ermöglichen, WordPress zu erweitern, Funktionen, um die Funktionalität von WordPress zu überschreiben.
Leider gibt es keine Standardbibliothek für die Verwendung eines eher funktionalen Paradigmas in PHP. Wir haben viele Bibliotheken überprüft, aber keine hatte genau das, was wir brauchten, um ausdrucksstarken Code in einem funktionalen Stil zu schreiben. Stattdessen haben wir uns also entschieden, unsere eigene Bibliothek zu schreiben. Wir haben uns von verschiedenen Quellen inspirieren lassen, vor allem aber von JavaScript-Bibliotheken, die wir für ausgereifter hielten.
Funktionale Programmierung verfolgt einen anderen Ansatz als andere Paradigmen, daher ist der Wechsel zu einem funktionalen Programmierparadigma tatsächlich ein großer Schritt. Es erfordert, dass Sie Ihre Denkweise über das Schreiben von Code und das Lösen von Problemen ändern. Es erfordert viel Übung, ausdrucksstarken Code zu schreiben, der klar und prägnant ist.
Wir denken definitiv, dass es das hat. Funktionale Programmierung hat eine Reihe von Eigenschaften, die zu unserem Vorteil wirken:
Aber natürlich ist nichts perfekt. Obwohl funktionale Programmierung prägnanter und vorhersehbarer ist, hat sie Nachteile, insbesondere wenn Sie nicht damit vertraut sind:
Es versteht sich von selbst, dass die Beliebtheit der funktionalen Programmierung mehr als nur ein Trend ist. Aufgrund ihrer Natur eignet sich die funktionale Programmierung hervorragend für Aufgaben wie maschinelles Lernen und Datenanalyse. Infolgedessen haben Unternehmen aller Größen begonnen, Interesse an der funktionalen Programmierung zu zeigen oder sogar ihren Übergang dorthin zu beginnen. Das bedeutet nicht, dass Sie sich für immer von der objektorientierten Programmierung verabschieden sollten, aber es lohnt sich, die funktionale Programmierung auszuprobieren. Selbst wenn Sie sie am Ende nie nutzen, stehen die Chancen gut, dass Sie Ihre Fähigkeiten als Entwickler verbessern.
Wenn Sie daran interessiert sind, mehr zu erfahren, empfehlen wir, mit der Blog-Beitragsreihe „Composing Software“ zu beginnen.
Sobald Sie bereit sind, tiefer einzutauchen, werfen Sie einen Blick auf unser FP-Projekt-Repository.
Wir sind immer auf der Suche nach außergewöhnlichen Entwicklern, die unser Team verstärken. Wenn das nach Ihnen klingt, warten Sie nicht länger – bewerben Sie sich noch heute.