Scala is a multi-paradigm functional/object-oriented programming language. As such, its design and feature promotes more robust designs, building on immutable value objects and collections, a shared-nothing parallelism model and generally much less lines of code. All of these, in addition to powerful support for in-language DSLs, allow us to grow our software to be testable and deterministic, and is an excellent choice for projects using the TDD methodology.
This talk will cover the following aspects:
Short introduction to Scala and its main features
Why case classes and immutable collections are your best friends
How avoiding null values and throwing exceptions make your code more predictable and testable
Traits and how they allow us to compose our software to more manageable pieces
Using the specs2 test framework for testing your Scala code