Please log in to watch this conference skillscast.
You will learn how to cut your applications into isolated, independent pieces using Freestyle library with free monads or tagless final style. The session is based on a multiplayer, purely functional version of Prisoner’s Dillema.
Your applications frequently consist of business logic, communication, persistence, caches & logging. You always want to keep them apart and reason about each of them individually. However, this is very difficult to achieve in practice.
Enter free monad. It lets you decouple those concerns by dividing our program into algebras and interpreters. During this talk, you will discover an application built on top of free monad in Scala & Cats. You will learn how to create pure & declarative DSLs, side-effecting interpreters and how to use them together. Then you will explore Freestyle library and show how it makes the code more concise. At the end, you will compare the free monad approach to another technique used to decouple concerns: tagless final.
YOU MAY ALSO LIKE:
- Building multiplayer game using streams - Beginner (SkillsCast recorded in December 2016)
- Modern development with Java (in London on 15th - 17th July 2019)
- Functional Concurrency in .NET with C# and F# (in London on 9th - 10th September 2019)
- Haskell eXchange 2019 (in London on 10th - 11th October 2019)
- Clojure eXchange 2019 (in London on 2nd - 3rd December 2019)
- Hands-on: Fractal art with Fable and WebGL (in London on 20th June 2019)
- Keynote by Dick Wall on Why API Design Matters, and Why Yours Sucks! (and mine sucks too!) (in London on 24th June 2019)
- User-First Internationalisation (SkillsCast recorded in June 2019)
- Getting Into the Zero Downtime Deployment World (SkillsCast recorded in June 2019)
Freestyle, Free & Tagless: Separation of Concerns on Steroids
Polyglot software engineer specialised in developing distributed applications. Functional programming enthusiast. Loves the human component in software projects. Drinks a lot of tea. Has a blog at michalplachta.com. He currently works as team leader at Ocado Technology, where he is building actor-based software for automated warehouses.