CRUD, ale funkcyjnie w Scali

Adam Warski

24 Oct 2019.0 minutes read

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
  • traity 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.

Blog Comments powered by Disqus.