Grundlagen Funktionaler Programmierung (c't Webinar-Aufzeichnung)
In dieser Webinar-Aufzeichnung von Katja Potensky erwarten Sie spannende Themenschwerpunkte wie:
- Theoretische Grundlagen (Geschichtlicher Exkurs, Funktionen vs. Prozeduren, Werte)
- Funktional Denken (Pipelines bauen, N-Ary Funktionen, Pattern Matching)
- Funktoren, Monaden
- Pipelines mit Monads verbinden
- Fehlerbehebung
Webinar "Grundlagen Funktionaler Programmierung – Konzepte verstehen und eleganten Code schreiben", im heise shop als Aufzeichnung der Live-Veranstaltung aus September 2024.
Funktionale Programmierung bietet zahlreiche Vorteile: Unveränderliche Datenstrukturen und Vermeidung ungewollter Seiteneffekte machen den Code vorhersehbarer und weniger fehleranfällig, was Testen, Debuggen und Wartung erleichtert. Auch Parallelisierung und nebenläufige Ausführung werden vereinfacht, da gemeinsame Zustände überflüssig werden und die Nutzung von Mehrkernprozessoren erleichtert wird.
Die Referentin führt im Webinar praxisnah in die Grundlagen ein und verdeutlicht, dass einfache Mechanismen hinter diesem als hochkomplex wahrgenommenen Programmierstil stehen.
Inhalte
1. Grundlagen
- Kurzer geschichtlicher Exkurs (Lambda-Calculus)
- Funktionen vs. Prozeduren (mapping values vs. Changing runtime)
- Werte, überall Werte (functions are values)
- Immutability (easier to reason about)
2. Funktional Denken
- Daten sind kein Verhalten (OOP encapsulates Data and Behaviour, fp separates them)
- Komposition mal einfach (durch Trennung von Daten und Verhalten lassen sich Pipelines bauen)
- Ein bisschen Curry? (N-Ary functions, partial application and currying)
- Kleiner ist besser (kleinste Bausteine zu größeren zusammensetzen)
- Ganze Muster statt Bestandteilen prüfen (Pattern matching)
3. Funktoren, Monaden, wie bitte?
- Alles schon mal da gewesen (Arrays, Promises, Streams are nearly Monads)
- 3 Gebote (lift, map, chain)
- Konzepte statt Verhalten abstrahieren (Option Monad selbst schreiben)
- Vorstellung bereits abstrahierter Konzepte (Option, Either, Future)
- Kombination von Konzepten (Either to Option, TaskEither etc)
4. Das Gesamtbild
- Pipelines mit Monads verbinden (user stories in pipelines ausdrücken)
- Fehlerbehandlung in nicht nervig (railway based programming)
- Ausblick
Ihr Nutzen
- Sie erhalten einen leicht verdaulichen Einblick in die Mechanismen der funktionalen Programmierung.
- Sie lernen, abstrakte Muster zu erkennen und zu verarbeiten.
- Sie können unnötigen Ballast identifizieren und loswerden.
Zielgruppe
- Web- und Enterprise-Entwickler
- Mathematiker die einen Einstieg in die Programmierung suchen
- Alle, die sich für das Konzept der funktionalen Programmierung interessieren