Zu viele Gedanken, zu wenig Gemeinsamkeiten
Naming is hard!
Beim Schreiben an einer Codebasis, die für mehrere Projekte und von unterschiedlichen Teams verwendet wird, stößt man immer wieder auf die Frage der Namensgebung für Klassen, Methoden, Funktionen, Variablen usw…
Ein gut gewählter Name kann dabei für ein schnelleres Verständnis eines Programmteils von Vorteil sein. Doch wenn wir über Jahre hinweg an diesen Dingen arbeiten, passiert es immer mal wieder, dass wir unsere Meinung zu bestimmten Namen ändern.
Oder ein anderes Teammitglied schreibt eine Wrapper-Funktion, die plötzlich andere Namen für Variablen verwendet, weil der neue Name im neuen Kontext mehr Sinn ergibt.
Beispiel WordPress
In WordPress können wir uns aussuchen, wie wir z.B. die letzten 5 Beiträge bekommen wollen.
Entweder verwenden wir hierfür die Funktion get_posts();
oder wir instanzieren ein neues Objekt mittels new WP_Query();
Je nachdem welche Variante wir wählen, können wir unterschiedliche Argumente setzen, um die Abfrage der Beiträge einzugrenzen.
Eines dieser Argumente steuert die Anzahl der zurückgegebenen Beiträge. Und genau hier wird es spannend.
Während wir für get_posts();
das Argument numberposts setzen können, bringt uns das bei der WP_Query();
nichts!
Die WP_Query(); kann nämlich nur mit dem Argument posts_per_page was anfangen. Wohingegen get_posts();
auch posts_per_page korrekt erkennt und richtig verarbeitet.
Dieses Beispiel ist natürlich trivial und soll nur das grundsätzliche „Problem“ beim Umgang mit Programmcode aufzeigen. Um dieses eine Problem zu umgehen, sollte es reichen, wenn wir uns einfach das Argument posts_per_page merken, da dies in beiden Fällen korrekt funktioniert.
Kleine Notiz am Rande
Wer war zuerst da? :D
Während get_posts();
mittlerweile eine Wrapper-Funktion für die WP_Query ist, war es doch die Funktion, die zuerst in WordPress implementiert wurde.