Course Overview
This is a great course that familiarises experienced scala developers with the new features that were introduced in Scala 3. The course also covers migration techniques and strategies.
Course Prerequisites
Students should be familiar with Scala 2
Outline
We are proud to offer this Scala 3 upgrade course. This course is geared toward students that already are familiar with Scala 2 and wish to quickly learn new and updated language features, techniques and migration strategies. If you are a newcomer to scala, we recommend our Core Scala 3 course: SCALA-CORE.
EDC4IT has been working with Scala since the early 2000s, and has taught many teams.
We worked together with different teams on their projects.
This course covers:
Introduction to Scala 3
- Introduce Scala 3
- Changes to the compiler (and intro into DOT calculus)
- Optional braces and indentation
- Deprecated features
New Language Features
- Explicit nulls and safe initialization
- Intersection and union types
- Using enums for simplified ADTs
- Simplified pattern matching
- Discuss changes in Macro support
- Changes for traits (parameters, transient, …)
- Using export clauses
Changes
- Changes to refinement and structural types
- Changes for operators and infix notation
- Defining applications (and using the FromString type-class)
- Open/closed classes
- Changes to eta-expansion
- Changes to equality (and using type-class derivation)
- Other changes
Changes in Implicits
- defining implicit conversions
- Using extension methods
- using givens/using
- Defining and implementing Type Classes in Scala 3
- Opaque Type Aliases
- Introduce Type-class derivation
Migration Strategies
- Discuss migration strategies
- Manage dependencies and use scala 2 libraries
- Using compiler flags
- Using the compiler to aid in migration
- Applying scalafix rules
- Using sbt (Scala 3 Migrate Plugin)