Advanced Scala

Course Length: 3 days
  • Introduction
  • Refresher on Scala and Setup
  • Basic Type Programming
    1. Type Aliasing
    2. Stable Types
  • Parameterized Types
    1. Covariance
    2. Contravariance
    3. Invariance
    4. F-Type Polymorphism
  • Defining Types
    1. Abstract Types
    2. Path Dependent Types
    3. Self Types
    4. The Cake Pattern
  • Advanced Abstractions
    1. Structural Types
    2. Infix Types
    3. Type Projections
    4. Existential Types
  • Implicits Review
  • Typeclasses Review
  • Higher Kinded Types
    1. Higher Kinded Types
    2. Common Patterns
      1. Functor
      2. Monoid
      3. Monad
  • Out in the wild
    1. Cats
    2. Scalaz
    3. Circe
    4. Shapeless