Przejdź do treści

Modelowanie Domeny z FP - część 1 - Oddzielenie biznesu od efektów ubocznych

Zdjęcie użytkownika PawelWlodarski
Hosted By
PawelWlodarski
Modelowanie Domeny z FP - część 1 - Oddzielenie biznesu od efektów ubocznych

Szczegóły

Jest to pierwszy z serii warsztatów, która ma przybliżyć zastosowanie bardziej zaawansowanych konstrukcji programowania funkcyjnego w kontekście jakiejś bardziej rzeczywistej domeny biznesowej.

Cykl warsztatów inspirowany jest książką "Functional and Reactive Domain Modeling" , która posłuży za kręgosłup dla procesu nauki.:

https://secure.meetupstatic.com/photos/event/a/a/b/c/600_460123708.jpeg

Na pierwszym warsztacie :

• opowiemy sobie jak przy pomocy technik Programowania Funkcyjnego odseparować czystą logikę od tzw. "Efektów" ubocznych systemu (brak usera w bazie, wyjątki przy przetwarzaniu zewnętrznego protokołu czy operacje asynchroniczne w osobnym wątku. )

• Podstawowe operacje na typach wyższego rzędu (czyli cos w postaci M[A])

• "Smart Constructors" czyli użycie Companion Object jako fabryki operującej na typach wyższego rzędu co zabezpieczy nas przed wyprodukowaniem błędnych danych

W trakcie ćwiczeń będziemy troszeczkę zahaczać o pewne konstrukcje z biblioteki cats aby nauczyć się wykorzystywać już gotowe mechanizmy. Niektóre ćwiczenia będa nas zmuszać do nieoptymalnej implementacji bo by lepiej zrozumieć konsekwencje wyboru danego mechanizmu.

POZIOM : ŚREDNIOZAAWANSOWANY

JĘZYK : Scala

Nie chcę w trakcie warsztatu rozwodzić się za bardzo nad składnią scali dlatego jest już wymagana jej znajomość choćby na poziomie takim by wiedzieć jak napisać metodę, która przyjmuje funkcje i zwraca funkcje oraz co to są aliasy typów.

No i założenie jest, że na tym poziomie każdy wie jak zaimportować projekt do ide i pokonać wszystkie problemy z konfiguracją. Jeśli wciąż masz problemy z konfiguracją to ten poziom może być zbyt zaawansowany.

Materialy

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

Przygotowanie:

Zaimportuj

https://github.com/PawelWlodarski/workshops

A następnie odpal:

https://github.com/PawelWlodarski/workshops/blob/master/src/main/scala/jug/lodz/workshops/modeling/creation/SeparateDomainFromEffects.scala

Gdzie:

https://secure.meetupstatic.com/photos/event/8/b/a/600_460622234.jpeg

W razie pytań pytajcie śmiało.

Photo of Java User Group Łódź group
Java User Group Łódź
Zobacz więcej wydarzeń