Es wird Zeit, dass wir über Zeit reden. Na ja, eigentlich eher um Asynchronität und wie wir damit umgehen.
Ja, ich weiss, Promises sind eine Möglichkeit damit umzugehen. Bedauerlicher Weise sind Promises nicht optimal für den Einsatz in der funktionalen Programmierung.
Von den alternativen Kontrollstrukturen, die wir uns letztes mal angesehen haben, war eigentlich nur das Either streng funktional. Dennoch ist es immer von Vorteil den Code so einfach und erweiterbar wie möglich zu gestalten.
Werfen wir diesmal einen Blick darauf, wie wir mit verschachtelten Container-Typen umgehen.
Linearen Datenfluss haben wir jetzt scheinbar einigermassen im Griff.
Die meisten Lösungen, die wir produzieren sind aber nicht geradlinig sondern verzweigt und verzwickt.
Angefangen bei schlichten NULL-Checks über Validierung von Eingaben bis hin zu Verzweigungen in der Geschäftslogik.
Bisher hatten wir reichlich Theorie und haben noch einiges mehr, was wir uns ansehen sollten. Aber vielleicht schauen wir mal, was wir mit dem, was wir bisher so gelernt haben auf die Beine stellen können.
Machen wir uns die WordPress REST-Api zu Nutze und bauen eine kleine App, welche die letzten Posts abholt und in eine Liste transformiert.
Ok. Jetzt haben wir uns einen groben Überblick darüber verschafft wie funktionale Programmierung auf… erm, ja… Funktionsebene funktioniert.
Allerdings haben wir es auch bei diesem Stil mit einer ganzen Reihe von Typen zu tun.
Sehen auf den ersten Blick zwar aus wie Objekte und implementieren auch ein oder mehrere Interfaces. Sie sind aber beileibe nicht das, was man sich im OOP Sinne unter Klassen vorstellen würde.
Alles klar, ein kurzer Rückblick. Wir wissen jetzt was es mit composition auf sich hat und was eine Sprache generell dafür mitbringen muss.
Einen weiteren wichtigen Aspekt des ganzen haben wir allerdings noch nicht besprochen. Eigentlich ist das sogar einer der Eckpfeiler und Hauptgründe der diesen Programmierstil so robust macht.
SEO-Freundliche Urls sind, einfach gesagt, solche Urls, die nicht nur aus dem Script Namen und einer liste abstrakter parameter und IDs bestehen sondern mit lesbaren Bezeichnern arbeiten. Also so, wie die Url, die zu diesem HowTo führt.Bei Blogs oder CMS lässt sich das relativ leicht mit einem Mapping umsetzen. Zu dem Datensatz wird einfach der …
Systeme wie WordPress oder Drupal bieten die Möglichkeit ein großes Maß an Kernfunktionalität mit Plugins oder Modulen zu erweitern oder sogar vollständig zu verändern ohne dabei das Kernsystem umschreiben zu müssen.Der Trick dabei sind function hooks – also Funktionen die durch andere Funktionen erweitert werden können.Wie sich sowas umsetzen lässt, möchte ich im Folgenden Zeigen.
Statische Variablen sind im Prinzip eine Mischung aus globalen und lokalen Variablen. Sie sind nur innerhalb der Funktion sichtbar, die sie deklariert hat, behalten jedoch nach verlassen der Funktion ihren Wert. Schreibt man sich nun eine Funktion, die je nach Parametrisierung diese statische Variable setzt oder zurückgibt, kann man sich mit relativ wenig code beispielsweise …
Kommentare