Funktionale Programmierung in Java

Eine umfassende Einführung

Herbert Prähofer

Cite this publication as

Herbert Prähofer, Funktionale Programmierung in Java (2020), dpunkt.verlag, Heidelberg, ISBN: 9783960889847

3687
accesses
11
quotes

Descripción / Abstract

Ihr Weg vom objektorientiertem zum funktionalem Java


Was ist Funktionale Programmierung?
Wie funktioniert Funktionale Programmierung in Java?
Was sind Techniken, Muster und Best Practices für den Einsatz von Funktionaler Programmierung in Java?


"Funktionale Programmierung in Java" eignet sich sowohl für Java-Einsteiger, die sich die funktionalen Aspekte von Java genauer ansehen wollen, als auch für erfahrene Java-Entwickler, die ihre objektorientierten Kenntnisse um funktionalen Konzepte erweitern wollen. Nach der Lektüre wissen sie, wie Sie mit Ansynchronität und Nebenläufigkeit umgehen können. Streams, Monaden und Co. werden Ihren Programmierstil bereichern.

Descripción

Herbert Prähofer ist Professor für Informatik an der Johannes Kepler Universität Linz, Österreich. Seine Forschungsschwerpunkte liegen im Bereich der Methoden der Softwareentwicklung und des Software Engineerings, mit aktuellen Schwerpunkten im Bereich statischer Programmanalyse und Produktlinien-Engineering. Er ist Autor und Ko-Autor von über 100 Publikationen in wissenschaftlichen Zeitschriften, Konferenzbänden und Büchern. Seit 2007 ist er im Studium Informatik für die Ausbildung in funktionaler Programmierung zuständig und hält dazu Vorlesungen "Prinzipien von Programmiersprachen", "Objekt-funktionale Programmierung in Scala" und "Funktionale Programmierung in Java".

Índice

  • BEGINN
  • Inhaltsverzeichnis
  • Vorwort
  • 1 Einleitung
  • 1.1 Elementare Konzepte und Begriffe
  • 1.2 Funktionale Programmierung in Java
  • 2 Sprachliche Grundlagen
  • 2.1 Java Generics
  • 2.2 Default-Methoden
  • 2.3 Lambda-Ausdrücke
  • 2.4 Funktionale Interfaces
  • 2.5 Methodenreferenzen
  • 2.6 Zusammenfassung
  • 3 Programmieren ohne Seiteneffekte
  • 3.1 Reine Funktionen
  • 3.2 Funktionale Ausnahmebehandlung mit Optional
  • 3.3 Funktionale Listen
  • 3.4 Paare und Tupel
  • 3.5 Zusammenfassung
  • 4 Programmieren mit Funktionsparametern
  • 4.1 Listenverarbeitung mit Funktionen höherer Ordnung
  • 4.2 Flexible Programmschnittstellen
  • 4.3 Algorithmen
  • 4.4 Entwurfsmuster
  • 4.5 Eingebettete und bedingte Ausführung
  • 4.6 Auswertung nach Bedarf
  • 4.7 Zusammenfassung
  • 5 Kombination von Funktionen
  • 5.1 Flüssige Schnittstellen
  • 5.2 Funktionskomposition
  • 5.3 Kombinator-Parser
  • 5.4 Domänen-spezifische Sprachen
  • 5.5 Zusammenfassung
  • 6 Funktoren, Monoide und Monaden
  • 6.1 Funktoren
  • 6.2 Monoide und Reduktion
  • 6.3 Monaden
  • 6.4 Zusammenfassung
  • 7 Streams
  • 7.1 Grundlagen von Streams
  • 7.2 Klassen von Streams
  • 7.3 Stream-Operationen
  • 7.4 Collectors
  • 7.5 Anwendungsbeispiele
  • 7.6 Hinweise
  • 7.7 Interne Implementierung
  • 7.8 Zusammenfassung
  • 8 Parallele Streams
  • 8.1 Erzeugen von parallelen Streams
  • 8.2 Parallele Ausführung
  • 8.3 Bedingungen bei paralleler Ausführung
  • 8.4 Laufzeit
  • 8.5 Zusammenfassung
  • 9 Asynchrone Funktionsketten
  • 9.1 Eine Lösung mit parallelen Streams
  • 9.2 Asynchrone Lösung mit Futures
  • 9.3 CompletableFuture
  • 9.4 Asynchrone Programmschnittstellen
  • 9.5 CompletableFuture als Promise
  • 9.6 Kombination von CompletableFutures
  • 9.7 Zusammenfassung
  • 10 Reaktive Streams
  • 10.1 Grundlagen
  • 10.2 Varianten
  • 10.3 Hot und Cold Observables
  • 10.4 Operationen
  • 10.5 Nebenläufigkeit
  • 10.6 Fehlerbehandlung
  • 10.7 Rückstau und Flusskontrolle
  • 10.8 Testen reaktiver Streams
  • 10.9 Zusammenfassung
  • 11 Testen mit und von Funktionen
  • 11.1 Funktionsparameter bei JUnit 5
  • 11.2 AssertJ: Eine DSL für Unit-Tests
  • 11.3 Eigenschaftsbasiertes Testen nach QuickCheck
  • 11.4 Zusammenfassung
  • 12 Weiterführende Konzepte
  • A Bibliografie
  • B Laufzeitexperimente Parallele Streams
  • Index

Otros documentos de esta serie

    Títulos relacionados

      Otros títulos del mismo autor