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
Shai has been a Java developer from 2006 to 2011 when he first came upon the Scala language, becoming an avid aficionado and evangelist. He leads the tdd-israel meetup group and strongly believes that combining TDD with Scala is the best way to grow software in the current age.
Shai is a software architect at Wix.com, leading the server-side development of Wix's core products. He is also a musician and an amateur cook.