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:
Gdzie:
https://secure.meetupstatic.com/photos/event/8/b/a/600_460622234.jpeg
W razie pytań pytajcie śmiało.

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