Nutzung lediglich ”purer” Bibiliotheken Was bringt uns das? Anstatt st¨ andig Bits zu schieben, bauen wir erstmal nur abstrakte Syntaxb¨ aume (ASTs). 1
ausf¨ uhren (auswerten)! • Nachteil ⇒ man braucht etwas mehr Arbeitsspeicher • Vorteil ⇒ man spart unn¨ otige Arbeit • noch ein Vorteil ⇒ man kann ASTs kombinieren und optimieren 2
andere Denkweise als die ”einfache”. • Ein komplett ”pures” Programm ist sinnlos (weder Ein- noch Ausgabe)! • Wir brauchen aber Ein- und Ausgaben! • Also was tun? Die L¨ osung Wir ”dr¨ ucken” die Seiteneffekte an die R¨ ander unseres Systems (Programms). 3
Typen beschreiben, dann • kann der Compiler sie verstehen, das heißt: • erkennen, wenn wir einen Endpunkt nicht korrekt implementieren • diverse n¨ utzliche Dinge f¨ ur uns automatisch tun • Routing f¨ ur unser bevorzugtes Framework erstellen (Server) • einen Client f¨ ur unsere API erstellen (Ja, automatisch!) • Dokumentation generieren (Swagger) 6
:-) • kein umst¨ andliches ”Mocking” fehlender Abh¨ angigkeiten mehr • M¨ oglichkeit von ”Test-Interpretern” f¨ ur Logiken • starke statische Typisierung verringert Notwendigkeit f¨ ur einige Tests (”Der Compiler macht das f¨ ur uns.”) 7
• Benchmarks aus dem Buch sind recht eindeutig. • ”pure” liegt bei ”teuren” Operationen (POST, PUT) weit vorn (etwas 6-7 mal schneller) • bei GET Operationen etwas ausgeglichener, aber immer noch 6-7 Prozent Vorteil f¨ ur den ”puren” Ansatz 8
das als ”akademischen Unsinn” bezeichnen. • auch nicht auf Leute, die behaupten das sei zu langsam Stattdessen arbeitet sauber und ”pur” und freut euch ¨ uber: • besser verst¨ andlichen Code • besser testbaren Code • schnelleren Code (Yeah!) • jede Menge automatisch abgeleitete ”Boilerplate” 9