Advanced Scala

Course Overview

Scala is a type-safe programming language that runs on top of the JVM. Scala is tagged as the “long time replacement for Java”. Scala is both object-oriented and functional, thus allowing developers to easily express themselves using powerful tools without losing performance.

In this 4-day course, we’ll focus on the advanced syntax features that Scala offers.
We’ll also dive into Functional Programming idioms and how to implement them in Scala

  • Who should attend

    Scala developers, Team Leaders.

  • Prerequisites

    Good Scala Knowledge.

Course Content

  • Recap
    • For Comprehensions.
    • Implicits.
    • Parameterized Types and Variance.
    Functional Abstractions
    • The TypeClass Pattern.
    • Equality.
    • Monoids.
    • Functors + Composition.
    • Lambda Types.
    • Kind Projector Plugin.
    • Monads.

     

    Immutability
    • The Benefits of Immutability.
    • Introducing Lenses.
    • Lenses Composition.
    • Partial Lenses.
    • Monocle (3rd Party).
    • The Global Variable Problem.
    • Introducing the State Patten.
    • State as a Monad.
    • State & Lenses.
  • Effects
    • Problems with Effects and FP.
    • Monads Composition Problems.
    • Monad Transformers.
    • Trampolines and Recursion.
    • The Free Monad.
    • Extensible Effects.
    • Eff (3rd party).

     

    Generic Programming
    • Introducing Shapeless.
    • Working with HList.
    • Generic[_].
    • CoProducts.
    • Typeclass Derivation.

     

    Effects
    • The Problem with Multiple Effects.
    • Overview of MonadTransformers.
    • The Free Monad.
    • Introducing Eff.
    • Composing Effects.

     

    The Scala Ecosystem
    • Typelevel Projects.
    • Cats.
    • Testing Frameworks.
    • Writing FP Micro-Services.

Want to improve your Scala skills?