Scala Best Practices

Learn the modern style of Scala that embraces both its object-oriented and functional aspects in a unified, accessible, and simple way.

Book a Training

Overview

Scala combines procedural, object-oriented, and functional features into one programming language, with a type system that is much more powerful than Java, C#, or Kotlin. With all this power comes a dizzying number of ways to write applications—not all of which are equally productive and scalable. Too often, teams have either failed to benefit from Scala’s strengths, or gone too deep into Scala’s complexity, in either case failing to realize the potential of Scala.

In this course, developers will learn about Scala best practices: a set of guidelines that cover Scala in the small, and Scala in the large. These guidelines, backed up by more than a decade of real world production usage, help developers play to the strengths of Scala. Upon completion of the course, developers will converge on a modern style of Scala that embraces both its object-oriented and functional aspects in a unified and accessible vision that eschews unnecessary complexity.

Are you interested in attending a private training course?

Register for Private Training

Are you interested in attending a public training course?

Register for Public Training

Who Should Attend

Scala teams who are wondering how to write Scala, or who are struggling to maintain large existing Scala code bases written in many different styles.

Prerequisites

Working knowledge of Scala.

Topics

  • Package organization
  • File & directory organization
  • The simple subset of Scala
  • Constraining implicits
  • Minimizing inheritance
  • Favoring composition over inheritance
  • How to avoid confusing implicits
  • Abstracting over arity without type-level programming
  • Best default compiler options
  • Best linting tools
  • Using Scalafix to enforce linting rules
  • Ergonomic & accessible code design
TESTIMONIAL
Last year, we started using ZIO, as a superior alternative to tagless-final and Monad transformers. ZIO is a powerful effect monad with a lot of combinators, interop with important libraries, and new integrations with OpenTracing and logging. ZIO lets us focus on our business logic, making it easier to understand and test, and there is no doubt ZIO will be one of the significant parts of Scala infrastructure over the coming years!
Jan de Groot
DHL Parcel Netherlands - Head of Development

Related Courses

Advanced Type Mechanics

Upgrade your Scala knowledge to include all the changes and latest features coming in Scala 3.

# fundamentals
16 hours

Scala 3 for Scala Developers

Upgrade your Scala knowledge to include all the changes and latest features coming in Scala 3.

# fundamentals
16 hours

Learning Scala

Learn the syntax and semantics of beginner through intermediate level Scala.

# fundamentals
16 hours

Book a Training