Udemy

Functional effect handling in Scala with Cats Effect

Enroll Now
  • 955 Students
  • Updated 9/2022
  • Certificate Available
4.6
(143 Ratings)
CTgoodjobs selects quality courses to enhance professionals' competitiveness. By purchasing courses through links on our site, we may receive an affiliate commission.

Course Information

Registration period
Year-round Recruitment
Course Level
Study Mode
Duration
7 Hour(s) 11 Minute(s)
Language
English
Taught by
Leandro Galvan
Certificate
  • Available
  • *The delivery and distribution of the certificate are subject to the policies and arrangements of the course provider.
Rating
4.6
(143 Ratings)
1 views

Course Overview

Functional effect handling in Scala with Cats Effect

A peek on how functional programming experts deal with side effects

When you first hear about functional programming you might get the impression that it can only be used in toy examples or for very academic purposes. After all, FP is all about purity and almost every useful thing you can do in a program is impure: http calls, file IO, and so on.

In this course I'm going to show you that FP is actually amazing for dealing with effects. By separating program description from execution you will be able to build computations that are easy to compose and reason about, while at the same time keeping all the usefulness of side-effects.

In order to do so, we are going to use the amazing Cats Effect library, which provides an IO monad to model our effects, a very rich API to compose them, and a highly-performant runtime to execute them.

The course is structured in many small/medium sized sections that focus on one specific topic. At the end of each section there is a final exercise to practice what you learned, and a quiz to help check your recall and understanding of the section.

By the end of the course, you will be able to:

  • Write and compose computations you want to run, before actually running them.

  • Design an error handling strategy for your application, taking side-effects into consideration.

  • Increase the parallelism and concurrency of your programs without the need to handle low-level details.

  • Use and compose resources that need to be released (connections, io streams, etc.) in an elegant manner.

  • Handle complex scenarios involving concurent shared state and thread communication by using purely functional primitives.

Hopefully, you will also have some fun along way!

Course Content

  • 14 section(s)
  • 81 lecture(s)
  • Section 1 Introduction
  • Section 2 Effects in Programming
  • Section 3 The IO Monad
  • Section 4 Error Handling
  • Section 5 Concurrency and Parallelism
  • Section 6 Resource Safety
  • Section 7 Asynchronous Computations
  • Section 8 Memoization
  • Section 9 Time
  • Section 10 Concurrent Shared State Part I - Refs
  • Section 11 Concurrent Shared State Part II - Deferred
  • Section 12 Queue
  • Section 13 Thread Pools
  • Section 14 Tagless final

What You’ll Learn

  • Model and compose effectful computations in a pure manner.
  • Design an error handling strategy taking side-effects into consideration.
  • Increase concurrency and parallelism of an application with high-level methods.
  • Safely use and release resources such as connections, io streams, etc.
  • Handle complex concurrent scenarios involving shared state and thread communication with purely functional primitives.


Reviews

  • D
    Denis Terletskiy
    4.0

    Overall – a good course, like all other courses of Leandro. However, I would extend this course a little for completeness. The following things, IMO, are missing: 1. IO section from the Cats course should be here. Making your own Trampoline, and then IO – is what this course misses, considering it is about IO. So if you new to Scala, I would highly recommend to start from Scala Cats course of Leandro 2. Some Cats Effect things are missing: Fibers, MVars, more deeper explanation of what is Tagless Final and why it is needed. 3. This time there is no final project. Other two courses do have them :) Anyway – this course is a great start for those who wants to get acquainted with Cats Effect. After finishing it you can go to the documentation and/or search for additional information, if you decide it is not enough.

  • K
    Krystian Warda
    5.0

    Great course! It covers a lot of functionalities of FP using Cats Effect. I wish there were a repository with code from each lesson, though!

  • G
    Gulshan Kumar
    5.0

    Explaining in very good way to understand how it's getting used in practice.

  • O
    Omair A
    5.0

    Great overview of Cats Effect. Love the hands on approach of solving related problem while trying to explain the concepts!

Start FollowingSee all

We use cookies to enhance your experience on our website. Please read and confirm your agreement to our Privacy Policy and Terms and Conditions before continue to browse our website.

Read and Agreed