CRUD, ale funkcyjnie w Scali
Można je lubić lub nie, ale implementacja CRUDów jest stałą częścią życia programisty. Istnieje wiele różnych narzędzi, których możemy użyć: frameworków i bibliotek; ich zadaniem jest pomóc w przejrzystej implementacji procesów biznesowych.
Scala, jako język funkcyjny, oferuje inne podejście od tego, które znamy z Javy, JEE i Springa. W trakcie prezentacji dodamy funkcjonalność do szablonu aplikacji CRUDowej w Scali, Bootzooka (https://github.com/softwaremill/bootzooka), z wykorzystaniem "funkcyjnych" bibliotek i "funkcyjnego" podejścia:
- DI za pomocą konstruktorów
trait
y do organizacji kodu w moduły- tapir i http4s do wystawiania endpointów HTTP
- doobie do dostępu do bazy danych
- monix z cats-effect do zarządzania efektami ubocznymi
Znajomość Scali ani żadnej z powyższych bibliotek nie jest wymagana; ale też celem prezentacji nie jest nauka języka czy konkretnej biblioteki, tylko pokazanie schematu podejścia do rozwiązywania problemów, i jego zalet w stosunku do "standardu" Javowego.