Past Meetup

Warsztaty Java8 - Funkcje i Efekty Uboczne

This Meetup is past

21 people went

Location image of event venue

Details

W trakcie warsztatu dowiemy się jak używać czystych funkcji w pełnym nieprzewidywalnych efektów świecie.

Czyste funkcje są bardzo wygodne do kompozycji i łatwe do analizy. Problem zaczyna się gdy trzeba ich użyć w kontekście czegoś co "może się nie udać". Jak zadziała funkcja agregująca zamówienia danego użytkownika jeśli nie wiemy czy taki użytkownik istnieje w bazie? W ogóle co zrobić kiedy takie połączenie do bazy rzuci wyjątek - w teorii taka funkcja, która rzuca wyjątek funkcją już nie jest...

No i najmniej intuicyjne - jak stosować czyste funkcje w 4 wymiarze - czyli w kontekście czasu i sytuacji, że i owszem funkcja jest czysta ale argument pojawi się dopiero za 300 milisekund :)

Dobra wiadomość - są specjalne konstrukcje do radzenia sobie z tymi sytuacjami. Aby zbudować wokół nich lepszą intuicje pracować będzie w kontekście takiej mini domeny biznesowej z produktami i zamówieniami.

* Zobaczymy jak wykorzystać Optional w sytuacji gdy dana wartość może istnieć lub nie (potencjalnie koniec z nullpointerami!)
* Jak wykorzystać Try z biblioteki Javaslang gdy chcemy mieć większą kontrolę nad tym co się nie udało.
* I na końcu zbadamy jak CompletableFuture pomaga nam ogarnąć błędy... które jeszcze się nie wydarzyły.

A wszystko powinno udać się bez nulli, za ograniczeniem rzucania wyjątków na lewo i prawo - a na pewno będzie starać się zachować Referential Transparency (poznane na pierwszych warsztatach) , które znacznie eliminuje błędy i ułatwia analizę kodu.

REPOZYTORIUM

Stworzyłem nowe repo do warsztatów z Javy oparte na mavenie : https://github.com/PawelWlodarski/workshops-javafp

Ćwiczenia są w pakiecie : https://github.com/PawelWlodarski/workshops-javafp/tree/master/src/main/java/jug/lodz/workshop/javafp/effects

MATERIAŁ

https://pawelwlodarski.gitbooks.io/functional-programming/content/side_effects_in_fp.html

**************Sekcja dla sponsora*************

Ericpol, teraz część grupy Ericssona, jest firmą informatyczną działającą od 1991 roku na międzynarodowym rynku. Jesteśmy największym polskim eksporterem usług związanych z oprogramowaniem. Świadczymy usługi outsourcingowe, consultingowe i integratorskie, dostarczamy rozwiązania dedykowane dla takich branż jak telekomunikacja, automotive, przemysł, sektor publiczny, finanse i bankowość, sektor medyczny. Pracując u nas zdobędziesz doświadczenie w projektowaniu, kodowaniu, testowaniu i wdrażaniu złożonych systemów teleinformatycznych.

***********************************************