Functional Java 8: Let's have some fun!

Funktionales Programmieren ist im Moment in aller Munde. Es bietet vor allem im Bereich Parallelität und Korrektheit elegante Ansätze, die sich nicht nur im akademischen Elfenbeinturm, sondern auch im praktischen Einsatz bewährt haben. Mit Java 8 und Lambdas stehen jetzt endlich auch Java-Anwendern einige Werkzeuge zur Verfügung, um funktionale Lösungen komfortabler umzusetzen.

In diesem Tutorial wollen wir uns mit den Vorteilen der funktionalen Programmierung beschäftigen und diese anwenden. Wir werden zunächst mit den Bordmittel des JDK experimentieren und unseren Werkzeugkasten Schritt um Schritt erweitern. Die Praxis steht dabei im Mittelpunkt, und anhand von Beispielen und Übungen werden die eigenen Fähigkeiten geschult und weiterentwickelt. Dabei soll auch der Spaß am Programmieren nicht zu kurz kommen.


Technische Anforderungen:

Benötigt wird eine aktuelle Java 8 Entwicklungsumgebung mit IDE (z.B. IntelliJ IDEA oder Eclipse) mit entsprechendem JDK und Maven.

Bei Bedarf stellen wir die benötigte Software (JDK für Mac u. Windows, Maven, Community Edition von IntelliJ) auch per USB-Stick zur Verfügung.

Falls Sie ein Gerät Ihrer Firma verwenden, überprüfen Sie vorher bitte, ob eines der folgenden, gelegentlich vorkommenden Probleme bei Ihnen auftreten könnte.

* Workshop-Teilnehmer hat keine Administrator-Rechte.
* Corporate Laptops mit übermäßig penibler Sicherheitssoftware
* Gesetzte Corporate-Proxies, über die man in der Firma kommunizieren muss, die aber in einer anderen Umgebung entsprechend nicht erreicht werden.


Agenda:

ab 8.40: Registrierung und Begrüßungskaffee

9.40: Beginn

Einführung und Motivation
Kennenlernen und Setup
Motivation funktionales Programmieren
Java 8 Lambda Auffrischung
Übungen

11.00 - 11.15: Kaffeepause

JDK Standard
Streams
Optionals
Übungen

Mutable/Immutable State
Java Beans
Shared State Probleme
Immutables mit JDK Bordmitteln
Übungen

13.00 - 14.00: Mittagspause

Immutables Library
Basics
Values
Builder
Styles
Übungen

Vavr (ehemals Javaslang) I
Collections
Operatoren
Tuples
Option
Either
Übungen

16.00 - 16.30: Kaffeepause

Vavr II
Functions
Try
Validation
Future
Pattern Matching
Übungen

Wrap-up
Diskussion und Erfahrungsaustausch
Literaturempfehlungen
Weiterführende Referenzen

ca. 18.30 Uhr: Ende

Vorkenntnisse

* Die Teilnehmer sind erfahrene Java-Entwickler, die idealerweise bereits mit dem JDK 8 vertraut sind.
* Die benötigten Java-8-Features werden allerdings auch kurz wiederholt.

Lernziele

* Einstieg in die Grundlagen der funktionalen Programmierung
* Verwendung der JDK-8-Basisfunktionen zur funktionalen Programmierung
* Verwendung weiterer Bibliotheken
* Kenntnisse der Möglichkeiten und der Grenzen von funktionaler Programmierung mit Java 8

Technische Anforderungen

Benötigt wird eine aktuelle Java 8 Entwicklungsumgebung mit IDE (z.B. IntelliJ IDEA oder Eclipse) mit entsprechendem JDK und Maven.

Bei Bedarf stellen wir die benötigte Software (JDK für Mac u. Windows, Maven, Community Edition von IntelliJ) auch per USB-Stick zur Verfügung.

Falls Sie ein Gerät Ihrer Firma verwenden, überprüfen Sie vorher bitte, ob eines der folgenden, gelegentlich vorkommenden Probleme bei Ihnen auftreten könnte.

- Workshop-Teilnehmer hat keine Administrator-Rechte.

- Corporate Laptops mit übermäßig penibler Sicherheitssoftware

- Gesetzte Corporate-Proxies, über die man in der Firma kommunizieren muss, die aber in einer anderen Umgebung entsprechend nicht erreicht werden.


Agenda:

ab 8.40: Registrierung und Begrüßungskaffee

9.40: Beginn

Einführung und Motivation

Kennenlernen und Setup
Motivation funktionales Programmieren
Java 8 Lambda Auffrischung
Übungen

11.00 - 11.15: Kaffeepause
JDK Standard

Streams
Optionals
Übungen


Mutable/Immutable State

Java Beans
Shared State Probleme
Immutables mit JDK Bordmitteln
Übungen

13.00 - 14.00: Mittagspause
Immutables Library

Basics
Values
Builder
Styles
Übungen


Vavr (ehemals Javaslang) I

Collections
Operatoren
Tuples
Option
Either
Übungen

16.00 - 16.30: Kaffeepause
Vavr II

Functions
Try
Validation
Future
Pattern Matching
Übungen


Wrap-up

Diskussion und Erfahrungsaustausch
Literaturempfehlungen
Weiterführende Referenzen

ca. 18.30 Uhr: Ende

Speaker

 

Tobias Ahlers
Tobias Ahlers arbeitet als Senior Developer bei der Smartsquare GmbH und ist vor allem im Bereich der Java-Entwicklung und der technischen Kommunikation aktiv. Seine Leidenschaft gilt außerdem der Software-Craftsmanship-Bewegung und dem Wissensaustausch in diversen Communities in und um Ostwestfalen.

Jens Krafczyk
Jens Krafczyk studierte an der Universität Bielefeld Kognitive Informatik und arbeitet jetzt als Softwareentwickler bei der Smartsquare GmbH. Als DevOps-Spezialist kümmert er sich um die komplette Kette vom Quellcode bis zur Auslieferungsplattform. Schon als Tutor im Studium stand bei ihm Wissensvermittlung besonders hoch im Kurs.

Herbstcampus-Newsletter

Sie möchten über den Herbstcampus
auf dem Laufenden gehalten werden?

 

Anmelden