Modelowanie Domeny z FP - część 1 - Oddzielenie biznesu od efektów ubocznych
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.
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.