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.
Eigentlich wollte ich nur mal eben ein kleines Cache-Problem auf dem Server beseitigen. Mangels ssh Zugriff und starkem Widerwillen jede einzelne Cache-Datei via FTP zu löschen entschied ich mich, kurzer Hand, ein Script zu schreiben welches diese Aufgabe für mich erledigen würde.
Für einen Benutzer sind Formulare lästig. Sie erfordern mehr Konzentration und aktive Beteiligung. Das wird jeder bei sich selbst schon beobachtet haben. Innerhalb einer Prozesskette ist ein Formular darüber hinaus auch eine Art von Währung. Genauer gesagt, der Aufwand das Ding auszufüllen und natürlich die Daten an sich.
Normalerweise wird man einen Benutzer nur dann auffordern, bestimmte Daten in ein Formular einzugeben, damit er im Gegenzug etwas bekommt. Einen Account, eine Bestellung, einen Termin, etc. Die Dateneingabe ist somit Teil des Preises oder der Gesamtpreis, den der Benutzer zahlen muss. Es findet automatisch eine Kosten-/Nutzen Analyse statt: „Ist es mir das wert?“.
Responsive oder Adaptive Layouts erfüllen vom Prinzip her den gleichen Zweck. Einfach ausgedrückt sollen sie dafür sorgen, dass eine Website auf allen möglichen Endgeräten bestmöglich zu sehen und zu bedienen ist. Wobei man in der Regel davon ausgehen kann, dass ein Responsives Layout dem Adaptiven überlegen ist. Aber wie für alle Regeln gibt es auch …
Kommentare