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.