P2pzqog3hph698qaj4oh
SkillsCast

Type-Driven Development in Practice: Cats and Akka HTTP

13th December 2018 in London at Business Design Centre

There are 50 other SkillsCasts available from Scala eXchange London 2018

Please log in to watch this conference skillscast.

Https s3.amazonaws.com prod.tracker2 resource 41088130 skillsmatter conference skillscast o9nohu

Type-driven development is a programming style where you write types first and use them to guide the definition of functions in your program. Scala is particularly well suited to it because of its powerful type system. Cats lets you take Scala and type-driven development even further by expressing side effecting operations as types.

During this talk, you will learn how to create a web service using Akka HTTP and Cats' Free, IO, Writer and Reader monads. The aim is to clearly delimit pure and impure code such that the former can be unit tested and reasoned about whilst the latter can be minimized.

The talk will have three parts. The first will show how to 'free' an Algebraic Data Type (ADT) that describes side effecting operations using the Free monad and an interpreter. The second part will introduce the IO monad and demonstrate how it lets you be both lazy and explicit when dealing with asynchronous operations. And in the final part, we will explore how to use the Reader and Writer monads to read configuration and write logs without sacrificing purity.

YOU MAY ALSO LIKE:

Thanks to our sponsors

Type-Driven Development in Practice: Cats and Akka HTTP

Matt Roberts

Matt Roberts is a Lead Consultant at a Disney Streaming Services. Engineering web-scale software using Scala, AWS and FP with the help of awesome people. Matt has used Scala since 2.8 and enjoys using the type system and functional concepts to make great software.

SkillsCast

Please log in to watch this conference skillscast.

Https s3.amazonaws.com prod.tracker2 resource 41088130 skillsmatter conference skillscast o9nohu

Type-driven development is a programming style where you write types first and use them to guide the definition of functions in your program. Scala is particularly well suited to it because of its powerful type system. Cats lets you take Scala and type-driven development even further by expressing side effecting operations as types.

During this talk, you will learn how to create a web service using Akka HTTP and Cats' Free, IO, Writer and Reader monads. The aim is to clearly delimit pure and impure code such that the former can be unit tested and reasoned about whilst the latter can be minimized.

The talk will have three parts. The first will show how to 'free' an Algebraic Data Type (ADT) that describes side effecting operations using the Free monad and an interpreter. The second part will introduce the IO monad and demonstrate how it lets you be both lazy and explicit when dealing with asynchronous operations. And in the final part, we will explore how to use the Reader and Writer monads to read configuration and write logs without sacrificing purity.

YOU MAY ALSO LIKE:

Thanks to our sponsors

About the Speaker

Type-Driven Development in Practice: Cats and Akka HTTP

Matt Roberts

Matt Roberts is a Lead Consultant at a Disney Streaming Services. Engineering web-scale software using Scala, AWS and FP with the help of awesome people. Matt has used Scala since 2.8 and enjoys using the type system and functional concepts to make great software.

Photos